【发布时间】:2021-02-28 08:35:48
【问题描述】:
所以我试图在不使用异步的情况下按顺序执行我的承诺,下面是我的代码
//promises is an array of function who return a promise
const p = function(promises){
let result = promises.reduce((prevPromise, promise) => {
return prevPromise.then(res => {
return promise.then(Array.prototype.concat.bind(res))
})
}, Promise.resolve([]));
return result;
}
现在说 promises 数组有 2 个函数,分别在 5 秒和 10 秒内执行,上面的代码在 10 秒内给出答案,但如果真正的序列执行应该在 15 秒内给出。请提出建议。
【问题讨论】:
-
async/await有什么问题? -
如果你已经有一个promise数组,你唯一能做的就是等待它们(使用
Promise.all)。如果你想让事情按顺序执行,这意味着你需要函数,你可以按顺序调用。
标签: javascript ecmascript-6 es6-promise request-promise