小程序
小游戏
企业微信
微信支付
扫描小程序码分享
虽然文档中表明了wx.request等基础API不支持 async/await,我还是不明白为什么? 如果一个任务要做10个异步网络调用,没有这个写法,代码会很难看。
不知道社区有其他的替代方案吗?有人开源了自己写的较高质量的Promise封装吗?
感谢
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
const request = params =>{ const {url,method,header,data} = params return new Promise((resolve, reject) => { wx.request({ url, data, header, method, success:function(res){ resolve(res) } }) }) } async initRequest(){ await request({}) await request({}) await request({}) }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
参考这个讨论https://developers.weixin.qq.com/community/develop/doc/00064cc26bc058a6a848f238351c00
写了份实现代码开源在这,有增强的朋友可以在增强
https://git.weixin.qq.com/jiji-opensouce/wx-xcx-empty-template/blob/master/utils/restapi.js
function request(params) { const { url, method, header, data } = params let taskController; let task = new Promise((resolve, reject) => { taskController = wx.request({ url, header, data, method, success(res) { resolve(res) }, fail(err) { reject({ msg: '请求失败', url, method, data, header, err, }) } }) }); return { task, taskController }; } // 使用 示例 request({ url: "http://www.qq.com", method: "GET" }).task.then(res=> console.log(res)); request({ url: "http://www.qq.com", method: "GET" }).taskController.abort();
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
const request = params =>{ const {url,method,header,data} = params return new Promise((resolve, reject) => { wx.request({ url, data, header, method, success:function(res){ resolve(res) } }) }) } async initRequest(){ await request({}) await request({}) await request({}) }
参考这个讨论https://developers.weixin.qq.com/community/develop/doc/00064cc26bc058a6a848f238351c00
写了份实现代码开源在这,有增强的朋友可以在增强
https://git.weixin.qq.com/jiji-opensouce/wx-xcx-empty-template/blob/master/utils/restapi.js
function request(params) { const { url, method, header, data } = params let taskController; let task = new Promise((resolve, reject) => { taskController = wx.request({ url, header, data, method, success(res) { resolve(res) }, fail(err) { reject({ msg: '请求失败', url, method, data, header, err, }) } }) }); return { task, taskController }; } // 使用 示例 request({ url: "http://www.qq.com", method: "GET" }).task.then(res=> console.log(res)); request({ url: "http://www.qq.com", method: "GET" }).taskController.abort();