小程序
小游戏
企业微信
微信支付
扫描小程序码分享
因为小程序是异步,在我for循环还没有执行完之前,就已经开始执行下一条语句了。但是我后面语句是需要调用for循环完成后的完整数据的,for循环好像又没有回调函数。所以,请问有没有办法让让for循环结束后,再执行下一条语句呢?
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
如果你for里面没有用异步方式,for本身是同步的呀。如果for用了异步操作,那么就只能判断index或者递归了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
之前做过类似的需求,我是这样写的: executeAsynFor: function() { return new Promise((resolve, reject) => { for(let i=0; i<length; i++) { // 执行异步操作 ...... // 判断for循环的异步操作都完成后,resolve // data为for循环完成后的完整数据 resolve(data) } }) }, // 在需要执行异步for循环的地方调用上面的函数
Promise.all
用Promise.all是比较好的
将异步await
不行就写在for循环里边,判断 i 是最后一次再执行
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
如果你for里面没有用异步方式,for本身是同步的呀。如果for用了异步操作,那么就只能判断index或者递归了
之前做过类似的需求,我是这样写的: executeAsynFor: function() { return new Promise((resolve, reject) => { for(let i=0; i<length; i++) { // 执行异步操作 ...... // 判断for循环的异步操作都完成后,resolve // data为for循环完成后的完整数据 resolve(data) } }) }, // 在需要执行异步for循环的地方调用上面的函数
Promise.all
用Promise.all是比较好的
将异步await
不行就写在for循环里边,判断 i 是最后一次再执行