Promise.resolve解析


總結自:https://blog.csdn.net/lq15310444798/article/details/81275278

Promise.resolve返回一個Promise實例

參數分4種情況:

1.參數為Promise實例

返回此實例

可能執行catch

------------------------------------------------------------

2.參數為thenable對象

備注:thenable對象為帶有then方法的對象

將此對象轉換為Promise實例,並立即執行其then方法

不會執行catch

let thenable= {
//注意then里居然有resolve,reject then:
function(resolve,reject){ resolve('lala') } } Promise.resolve(thenable).then((value)=>{ console.log(value)//lala })

 

------------------------------------------------------------

3.參數為基本類型或非thenable對象的對象

返回一個Promise對象,狀態為resolved(執行成功,進入then)

直接執行then方法,且value為參數的值

不會執行catch(因為狀態為resolved)

Promise.resolve(1).then((value)=>{
    console.log(value)//1
})

 

------------------------------------------------------------

4.不帶任何參數

直接返回一個狀態為resolved的Promise對象

不會執行catch

------------------------------------------------------------

注意:立即resolve的Promise對象是在本輪“事件循環”結束時執行,而不是在下一輪“事件循環”開始時執行!

setTimeout(function(){
    console.log("three");//下一輪事件循環執行
},0);
Promise.resolve().then(function(){
    console.log("two");
});
console.log("one");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM