Promise怎么做map循环
时间: 2023-07-31 09:09:50 浏览: 120
在 Promise 中实现 map 循环可以使用 Promise.all 和 Array.prototype.map 方法结合的方式。
Promise.all 方法可以接受一个 Promise 数组,并返回一个新的 Promise,这个新的 Promise 会在所有的 Promise 都 resolve 后 resolve,或者在其中一个 Promise reject 后 reject。Array.prototype.map 方法可以对数组中的每个元素执行一个函数,并返回一个新的数组。
结合 Promise.all 和 Array.prototype.map 方法,我们可以将 Promise 操作应用到数组的每个元素上,并等待所有 Promise 操作执行完成后返回结果。
以下是一个使用 Promise.all 和 Array.prototype.map 方法实现 map 循环的例子:
```javascript
const arr = [1, 2, 3];
const promiseArr = arr.map(async (num) => {
const result = await Promise.resolve(num * 2);
return result;
});
Promise.all(promiseArr)
.then((result) => {
console.log(result); // [2, 4, 6]
})
.catch((error) => {
console.error(error);
});
```
在这个例子中,我们使用 Array.prototype.map 方法对数组中的每个元素执行一个 async 函数,这个 async 函数返回一个 Promise 对象。然后我们使用 Promise.all 方法接受这个 Promise 数组,并等待所有 Promise 操作执行完成后返回结果。最终的结果是一个新的数组,其中的每个元素都是 Promise 操作的执行结果。