比方說,我現在用的是下面的代碼串聯運行的一對夫婦承諾:延誤承諾鏈
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