es6中的Promise機制(非同步程式設計的解決方案)

2021-10-09 09:21:14 字數 2028 閱讀 8297

1.作用

es中沒有多執行緒,但是可以有非同步操作;

promise就是非同步程式設計的解決方案

promise本身是乙個建構函式:

2.建立

var p1=new promise((resolve,reject)=>);

3.api

非靜態:

靜態:

settimeout

(function()

)

2.then測試

var p=

newpromise

((resolve,reject)

=>

else},

2000);

});p.

then

(function

(data)

,function

(data)

)

當請求成功時:

當請求失敗時:

3.catch測試

p.

then

(function

(data)

,function

(data)).

catch

(function

(reason)

)

上面列印num必然會報錯,因為num未定義

請求成功時:

p.

then

(function

(data)

,function

(data)).

catch

(function

(reason)).

finally

(function()

)

不管成功或失敗,都會執行finally操作

)執行截圖:

6.非同步請求

var promise=

newpromise

((resolve,reject)

=>

else}}

});p1.

then

(function

(data)

,function

(data)

)

當請求成功時:

當請求失敗時:

ES6中的Promise物件

列印出promise,我們能看出promise是乙個建構函式 那什麼是promise?promise是非同步程式設計的一種解決方案,它有三種狀態,promise執行完成後,只會有成功和失敗的狀態,並且不可被更改 pending 就緒狀態 resolved 成功狀態 pending 就緒狀態 reje...

使用ES6模擬Promise

const promise newstatus param newvalue param queue 執行的作業佇列 changestatus newstatus,newvalue,queue this promisestatus newstatus this promivevalue newval...

ES6關於promise技巧

1.推向promise物件推向 不同的狀態 const pro newpromise resolve,reject 2.原型成員 例項成員 註冊乙個後續處理函式,當promise為resolved狀態是執行該函式,當promise為rejected狀態是執行該函式的第二個引數 catch 註冊乙個後...