Promise 基本語法

2021-09-10 01:50:20 字數 2110 閱讀 2936

promise為何出現?

為了解決callback hell

promise有三種狀態:

pending (初始化狀態)

fulfilled (成功)

rejected (失敗)

promise物件的狀態改變,只有兩種可能:從pending變為resolved、從pending變為rejected,之後狀態不會在改變了且狀態不可逆。

promise基本語法

new promise 例項 要return

傳入函式 要有resolve reject 倆引數

成功執行resolve 失敗 reject

then 監聽結果並且接收結果

不使用promise的話模擬乙個callback hell

)使用promise

function

loadimg

(src)

img.

onerror

=function()

img.src = src

})return promise

}var src =

''var result =

loadimg

(src)

result.

then()

result.

then

()

catch通常用於最後統一捕獲,我我們try catch一樣

error和eject都可以捕獲

result.

then

(function

(img)).

then

(function()

).catch

(function

(error)

)

如果我們希望我們的需求按順序載入(例如,先載入使用者資訊,然後再通過使用者資訊渲染好友列表之類的)

我們需要在.then之後return 另外乙個promise 就可以了

//鏈式操作

img1.

then

(function

(img)).

then

(function

(img)).

catch

(function

(er)

)promise.all 接收乙個promose物件陣列待全部完成之後一起執行success。(有點像js中短路操作的 且&&)

.then方法接收的datas是乙個陣列,依次包含多個promise返回值

promise.

all(

[result1,result2]).

then

(datas =>

)

和all不一樣的是陣列中只要有乙個完成就執行success

(參考js短路操作的 或||)

promise.

race

([result1,result2]).

then

(data =>

)

Promise基本用法

promise就是乙個非同步執行的解決方案,將原本非同步發生的事情轉化成同步。示例想讓funa先執行,funb後執行 初始 funa function else funb function else funa funb 如果使用這種寫法,funa和funb是非同步執行的,不能做到先後執行。所以引入了...

promise的基本使用

promise 主要是解決非同步深層的巢狀問題 promise的基本使用 var p newpromise function resolve,reject sele return p 補充 在promise中,我們通常用 then來得到非同步任務正確的值,用.catch來得到非同步任務錯誤的結果 現...

promise 的基本用法

resolve 既是函式也是引數,它用於處理成功的 在非同步任務成功的時候,去呼叫resolve reject 既是函式也是引數,它用於處理失敗的 在非同步任務失敗的時候,去呼叫reject 知識點1 例1 最基本的寫法 promise的基本語法哦 const aa new promise func...