【发布时间】:2020-10-27 00:55:21
【问题描述】:
由于在使用 Promise.all 时遇到网络错误,我正在尝试在 NextJS 应用程序的构建过程中解决一系列承诺,但由于某种原因,我无法解决这些承诺。
此代码有效,但不适用于我的构建:
const activityPlacesPromises = activityLocationIDs.map((id) =>
this.get(`places/${id}`)
);
const activityPlaces = await Promise.all(activityPlacesPromises);
console.log(activityPlaces); // Returns the data correctly
此代码不起作用:
const activityPlaces = activityLocationIDs.reduce((promise, id) => {
return promise.then(() => this.get(`places/${id}`));
}, Promise.resolve());
console.log(activityPlaces); // Returns Promise { <pending> }
为什么 Promise.resolve() reduce 函数不起作用?
PS:我要结束这个 SO 问题:Resolve promises one after another (i.e. in sequence)?
【问题讨论】:
-
只是
const result = await activityPlaces。因为那时它只是promise.then的链,所以它仍然是一个承诺,而不是一个结果。
标签: javascript promise