一道Promise面試題,並對比向其代碼中添加await關鍵字後的變化

標準代碼:

(function() {
    console.log(1);
    window.setTimeout(() => {
        console.log(2);
    }, 100);
    
    new Promise((resolve) => {
        console.log(3);
        resolve();
    })
        .then(() => {
            console.log(4);
        });

    console.log(5);
})();

// 輸出結果:
// - 1
// - 3
// - 5
// - 4
// - 2

 

在promise對象前添入 await 後:

(async function() {
    console.log(1);
    window.setTimeout(() => {
        console.log(2);
    }, 100);

    await new Promise((resolve) => {
        console.log(3);
        resolve();
    })
        .then(() => {
            console.log(4);
        });

    console.log(5);
})();

// 輸出結果:
// - 1
// - 3
// - 4
// - 5
// - 2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章