【发布时间】:2017-04-26 01:16:39
【问题描述】:
假设我正在使用以下代码连续运行几个 Promise:
let paramerterArr = ['a','b','c','d','e','f']
parameterArr.reduce(function(promise, item) {
return promise.then(function(result) {
return mySpecialFunction(item);
})
}, Promise.resolve())
代码只是简单地调用 mySpecialFunction(它返回一个 Promise),等待 Promise 被解析,然后再次调用 mySpecialFunction 等等。因此,该函数以正确的顺序为数组中的每个元素调用一次。
如何确保每次调用 mySpecialFunction(item) 之间至少有 50 毫秒的延迟?
以正确的顺序执行 promise 很重要,mySpecialFunction 的执行时间每次都不同。
我猜同步睡眠会起作用,但我不打算在单独的线程中运行这段代码,所以它会导致浏览器中烦人的 ui 冻结。
我不确定 setTimer 是否可以用于此目的。我的意思是我不能延迟承诺的回报。
【问题讨论】:
-
我已经看到了,但我没有使用蓝鸟。我正在使用本机承诺。 (ECMA6)
标签: javascript ecmascript-6 promise delay es6-promise