如何同步一系列承諾?我有一個承諾對象數(shù)組,這些對象必須按照數(shù)組中列出的相同順序進行解析,也就是說,在解析完前一個元素(作為方法)之前,我們不能嘗試解析一個元素。Promise.all([...]))。如果一個元素被拒絕,我需要鏈立即拒絕,而不試圖解析以下元素。我如何實現(xiàn)這一點,或者是否存在這樣的現(xiàn)有實現(xiàn)?sequence模式?function sequence(arr) {
return new Promise(function (resolve, reject) {
// try resolving all elements in 'arr',
// but strictly one after another;
});}編輯最初的答案表明我們只能sequence這種數(shù)組元素的結果,而不是它們的執(zhí)行,因為它是在這樣的示例中預先定義的。但是,如何產(chǎn)生一系列的承諾,以避免早期執(zhí)行呢?下面是一個修改過的示例:function sequence(nextPromise) {
// while nextPromise() creates and returns another promise,
// continue resolving it;}我不想把它變成一個單獨的問題,因為我認為這是同一個問題的一部分。解下面的一些答案和隨后的討論有點誤入歧途,但最終的解決方案,正是我所尋求的,是在內部實現(xiàn)的。斯皮克斯圖書館,作為方法序列..該方法可以遍歷動態(tài)長度序列,并根據(jù)應用程序的業(yè)務邏輯創(chuàng)建承諾。后來,我把它變成了一個共享庫,供大家使用。
如何同步一系列承諾?
繁星coding
2019-07-11 20:55:29