關於promise面試題

2021-09-03 02:08:52 字數 874 閱讀 7155

今天面試被問到了兩個關於promise的面試題,不外乎就是執行順序相關的問題,話不多說,先上**!

這道題相信大家都明白了,一道爛大街的題,輸出結果不外乎就是promise1,1,promise2,settimeout

大致說一下原理,首先先了解一句話:同步優先,非同步靠邊,settimeout是常用來模仿非同步處理的乙個方式,當你看到settimeout的話那就肯定是非同步操作,先讓他往後稍一稍,接下來就是promise,promise內部是同步的,所以說先列印出promise1,接下來就是then方法裡的console,因為then是非同步的,所以也先往後稍一稍,再往下就是最外部的console.log(1)了,這肯定是同步的,所以接下來列印的是1,然後就是這個settimeout和then裡面的先後順序了,then函式在promise是下一輪執行的,所以接下來列印的就是promise2,最後輸出的是settimeout

第二道題,我問了很多人,都答得和我一樣,都答錯了,不知道你們有沒有中招。話不多說,上**。

一開始我想到的就是1,2,3,4,面試官也沒說什麼,就繼續接下來的問題了,其實我知道肯定答錯了,所以回來看了一下文件,正確結果是1,2,4,3,原因很簡單,當promise直接resolve的時候,表示著在當前這一輪執行,這裡就可以看作成乙個同步的事件,所以列印的就是1,2,4,3。

promise經典面試題

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

Promise 序列呼叫面試題

最新看到乙個比較有趣的面試題 怎麼序列執行 promise 這裡簡單給大家介紹下解答。針對多個 promise 方法,原生提供了all和race方法。但是,他們都不是序列執行。那應該如果執行序列方法?這裡介紹兩種寫法 遞迴執行 function iteratorpromise arr let arr...

面試題 關於指標

面試題 下列c 程式會在哪一行崩潰?struct s main 分析 int p s.i時,一直到p 0 4,p 1 3的時候,p始終等於 s.i。s.p p 建立了如下的關係 s.p存了p的值,也即 s.i,s.p 1 相當於 s.i 1 即s.i的位址加1.也就是s.p.s.p 1 和s.p其實...