Promise 序列呼叫面試題

2021-09-11 10:13:10 字數 816 閱讀 6768

最新看到乙個比較有趣的面試題:

怎麼序列執行 promise ?

這裡簡單給大家介紹下解答。針對多個 promise 方法,原生提供了allrace方法。但是,他們都不是序列執行。那應該如果執行序列方法?這裡介紹兩種寫法:

遞迴執行

function iteratorpromise(arr))()

}let arr = [()=>)

},()=>)

},()=>)

}]iteratorpromise(arr);

// output

run 1529918098567

run 1529918098568

run 1529918098569

複製**

迴圈呼叫

這種辦法比較取巧,直接利用 promise.resolve()。通過迴圈賦值,得到最終的結果。

function iteratorpromise(arr))

}let arr = [()=>,1000)

})},()=>,1000)

})},()=>,1000)

})}]iteratorpromise(arr);

// output

run 1529918643573

run 1529918644574

run 1529918645580

複製**

關於promise面試題

今天面試被問到了兩個關於promise的面試題,不外乎就是執行順序相關的問題,話不多說,先上 這道題相信大家都明白了,一道爛大街的題,輸出結果不外乎就是promise1,1,promise2,settimeout 大致說一下原理,首先先了解一句話 同步優先,非同步靠邊,settimeout是常用來模...

promise經典面試題

var urls 0 function loaddate url xhr.open get url xhr.send 按照題意我們可以這樣做,首先併發請求 3 個url中的資料,當其中一條url請求得到資料後,立即發起對一條新url上資料的請求,我們要始終讓併發數保持在 3 個,直到所有需要載入資料...

面試題之子串行分析

原題 給定長度為n的整數數列 a0,a1,an 1,以及整數s。這個數列會有連續的子串行的整數總和大於s的,求這些數列中,最小的長度。分析如果只是像題目這樣的描述,沒有強調正數,可以採用o n 2 的方法。解法一 但是,很多同學在討論的時候,指出了如果是正數,解法將會有什麼樣的變化。這個很好。不考慮...