小程序
小游戏
企业微信
微信支付
扫描小程序码分享
有人说用promise.all。我不太懂,promise看的云里雾里的。请教一下,这个应该怎么写?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
不懂promise基本写不了小程序。
死磕吧。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
参考以下代码,主要使用 async/ await 和 array.reduce 方法
// 模拟4个异步方法,返回数组 var api_1 = new Promise((resolve, rejcet)=> { const res = [100, 101, 102]; setTimeout(() => { resolve(res); }, 100); }); var api_2 = new Promise((resolve, rejcet)=> { const res = [200, 201, 202]; setTimeout(() => { resolve(res); }, 100); }); var api_3 = new Promise((resolve, rejcet)=> { const res = [300, 301, 302]; setTimeout(() => { resolve(res); }, 100); }); var api_4 = new Promise((resolve, rejcet)=> { const res = [400, 401, 402]; setTimeout(() => { resolve(res); }, 100); }); const apiArray = [api_1, api_2, api_3, api_4]; // 使用 async/await 和 reduce 方法,得出最终结果 const data = await apiArray.reduce(async (prevValue, currentValue, index) => { const prevRes = await prevValue; const currentRes = await currentValue; return [].concat( prevRes,currentRes); }, []); console.log(data)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
不懂promise基本写不了小程序。
死磕吧。
参考以下代码,主要使用 async/ await 和 array.reduce 方法
// 模拟4个异步方法,返回数组 var api_1 = new Promise((resolve, rejcet)=> { const res = [100, 101, 102]; setTimeout(() => { resolve(res); }, 100); }); var api_2 = new Promise((resolve, rejcet)=> { const res = [200, 201, 202]; setTimeout(() => { resolve(res); }, 100); }); var api_3 = new Promise((resolve, rejcet)=> { const res = [300, 301, 302]; setTimeout(() => { resolve(res); }, 100); }); var api_4 = new Promise((resolve, rejcet)=> { const res = [400, 401, 402]; setTimeout(() => { resolve(res); }, 100); }); const apiArray = [api_1, api_2, api_3, api_4]; // 使用 async/await 和 reduce 方法,得出最终结果 const data = await apiArray.reduce(async (prevValue, currentValue, index) => { const prevRes = await prevValue; const currentRes = await currentValue; return [].concat( prevRes,currentRes); }, []); console.log(data)