【发布时间】:2018-08-22 20:08:14
【问题描述】:
比如说,我需要按顺序重复一个 AJAX 请求 N 次。
通常(即没有 async/await),我会使用 reduce 链接承诺:
function timeout (ms = 1000) {
return new Promise(resolve => setTimeout(resolve, ms))
}
function request (message, ms = 1000) {
return timeout(ms).then(() => console.log(message))
}
function makeArray (i) {
return new Array(i).fill(null);
}
makeArray(5).reduce(
(promise, _, i) => promise.then(() => request(i)),
Promise.resolve()
)
如何用 async/await 重写这段代码?
我想做await request(i),而不是promise.then(() => request(i))。
我所有的尝试最终都并行运行了 Promise。我想要顺序。
【问题讨论】:
-
for(let i=0;i
标签: javascript ecmascript-6 async-await es6-promise ecmascript-2017