关于for 循环 内 的promise 的处理

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

先上代码:

关于for 循环 内 的promise 的处理_第1张图片

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

关于for 循环 内 的promise 的处理_第2张图片

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

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

代码改了一下:

关于for 循环 内 的promise 的处理_第3张图片

得到了如下的结果:

关于for 循环 内 的promise 的处理_第4张图片

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

// 使用async await 处理异步操作

let results = await Promise.all(arr.map(async (item) => {

// 等待异步操作完成,返回执行结果

return await asyncWorker(item);

}));

你可能感兴趣的:(关于for 循环 内 的promise 的处理)