最近在重构项目,其中有一棵树的接口,改为了两个接口返回json的数据拼接,不想改原来的组件,就在函数里面处理了下。遇到了这个问题:

先上代码:

关于for 循环 内 的promise 的处理

新出现了一个比较预料之外的现象:

关于for 循环 内 的promise 的处理

返回的数组里面是两个promise对象,没有预料中的同步返回数组。

分析了一波promise以及for循环:

代码改了一下:

关于for 循环 内 的promise 的处理

得到了如下的结果:

关于for 循环 内 的promise 的处理

.map()里的处理方法是同步的,若想做异步操作,可以这样写。

// 使用async await 处理异步操作 
let results = await Promise.all(arr.map(async (item) => { 
    // 等待异步操作完成,返回执行结果 
    return await asyncWorker(item);
}));

相关文章:

  • 2021-11-06
  • 2022-12-23
  • 2021-11-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-16
猜你喜欢
  • 2021-04-04
  • 2022-12-23
  • 2022-01-07
  • 2022-12-23
  • 2021-09-19
  • 2021-12-20
  • 2022-01-16
相关资源
相似解决方案