- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
好家伙.
。
今天在开发中犯了一个比较严重的错误 。
对于Promise的错误使用 。
。
场景
微信小程序中展示搜索条件列表 。
// API请求工具函数 const apiRequest = (url, method = 'GET', headers = {}) => { return new Promise((resolve, reject) => { wx.request({ url, method, header: headers, success: (res) => resolve(res), fail: (error) => reject(error) }); }); }; const fetchTypelist = async () => { const app = getApp(); const queryParams = app.globalData.queryParams; console.log(queryParams) let url = `${API_BASE_URL}/industryType/page?pageNo=1&pageSize=10`; // 添加常规的查询参数 for (const [key, value] of Object.entries(queryParams)) { if (value) { url += `&${key}=${encodeURIComponent(value)}`; } } try { const headers = {}; // 如果需要token,可以在这里添加 const response = await apiRequest(url, 'GET', headers); if (response.data.code === 200) { console.log(response.data) return response } else { throw new Error('获取地址列表失败'); } } catch (error) { throw error; } }; /.................../ 调用方法 let result = fetchTypelist() console.log(result)
。
。
猜猜会打印什么?
一个promise是的仅仅只是一个promise,并没有拿到请求返回的结果 。
。
async 函数默认返回一个 Promise,即使你在 async 函数中显式返回了值.
当你调用 async定义的函数 (fetchTypelist) 时,返回的实际上是一个 Promise,而不是直接返回的数据.
。
2.1.使用await等待方法的执行,获取返回值 。
const getTypelist = async () => { try { const typelist = await fetchTypelist(); console.log(typelist); // 这里可以获取到返回的 rows } catch (error) { console.error(error); // 处理错误 } };
。
。
2.2.使用链式调用.then()来处理promise 。
fetchTypelist() .then((typelist) => { console.log(typelist); }) .catch((error) => { console.error(error); });
。
。
。
。
最后此篇关于第147篇:微信小程序开发中Promise的使用(aysnc,await)的文章就讲到这里了,如果你想了解更多关于第147篇:微信小程序开发中Promise的使用(aysnc,await)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
好家伙, 0.错误描述 今天在开发中犯了一个比较严重的错误 对于Promise的错误使用 场景: 微信小程序中展示搜索条件列表 // API请求工具函
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭5 年前。 我有一个函数,我想完成第一个
我有一个远程服务,当特定事件发生时,我调用该服务来加载产品的定价数据。加载后,产品定价就会被广播,以供其他消费者在其他地方进行处理。 调用代码并不关心响应 - 它是“即发即忘”,响应应用程序事件并触发
当我使用 ExecutorService 进行异步调用时,它返回 Future 对象。根据它返回的 boolean 值,我必须记录异步调用的状态。 但是当我尝试从 future 对象调用方法 get
我在文档中找不到如何将 optionRenderer 属性与react-select async (Select.Async)一起使用 here is a question已经回答了,但是 rende
我在使用 Java 的 selenium Web 驱动程序自动执行此下拉操作时遇到问题 This是链接 - 转到名为 Github 用户的第 5 个下拉列表 (fetch.js) 我无法在搜索字段中输
我是一名优秀的程序员,十分优秀!