比方说,我现在用的是下面的代码串联运行的一对夫妇承诺:延误承诺链
let paramerterArr = ['a','b','c','d','e','f']
parameterArr.reduce(function(promise, item) {
return promise.then(function(result) {
return mySpecialFunction(item);
})
}, Promise.resolve())
的代码简单地调用mySpecialFunction(它返回一个承诺),等待承诺解决,然后再次调用mySpecialFunction等。因此,该函数被调用一次为数组中的每个元素,按正确的顺序。
我怎样才能确保每次拨打电话mySpecialFunction(item)
之间的延迟时间至少为50毫秒?
承诺以正确的顺序执行并且执行时间为mySpecialFunction
每次都有所不同,这一点很重要。
我猜想同步睡眠是可行的,但我不打算在单独的线程中运行此代码,所以它会导致恼人的ui在浏览器中冻结。
我不确定setTimer是否可以以某种方式用于此目的。我的意思是我不能拖延诺言的回归。
这可能有助于http://bluebirdjs.com/docs/api/promise.delay.html –
我已经看到了,但我没有使用蓝鸟。我正在使用原生Promise。 (ECMA6) – Forivin