Promise 基本方法的簡單實現

2022-09-19 23:51:13 字數 2309 閱讀 9967

promise 是前端面試和工作中極其常見的乙個概念,關於它各種方法的手寫實現也很有市場,今天在這裡總結一下 promise 基本方法的簡單實現。

catch方法是對then方法的封裝,只用於接收reject(reason)中的錯誤資訊。

因為在then方法中onrejected引數是可不傳的,不傳的情況下,錯誤資訊會依次往後傳遞,直到有onrejected函式接收為止,因此在寫promise鏈式呼叫的時候,then方法不傳onrejected函式,只需要在最末尾加乙個catch()就可以了,這樣在該鏈條中的promise發生的錯誤都會被最後的catch捕獲到。

catch(onrejected)
catchpromise鏈式呼叫的末尾呼叫,用於捕獲鏈條中的錯誤資訊,但是catch方法內部也可能出現錯誤,所以有些promise實現中增加了乙個方法done

done相當於提供了乙個不會出錯的catch方法,並且不再返回乙個promise,一般用來結束乙個promise鏈。

done() );

}

finally方法用於無論是resolve還是rejectfinally的引數函式都會被執行。

finally(fn) , reason => );

};

promise.all方法接收乙個promise陣列,返回乙個新promise2,併發執行陣列中的全部promise,所有promise狀態都為resolved時,promise2狀態為resolved並返回全部promise結果,結果順序和promise陣列順序一致。如果有乙個promiserejected狀態,則整個promise2進入rejected狀態。

static all(promiselist) 

}, reject);

i++;

}});

}

promise.race方法接收乙個promise陣列, 返回乙個新promise2,順序執行陣列中的promise,有乙個promise狀態確定,promise2狀態即確定,並且同這個promise的狀態一致。

static race(promiselist) , reject);

}});

}

promise.resolve用來生成乙個rejected完成態的promisepromise.reject用來生成乙個rejected失敗態的promise

static resolve(value) );

return promise;

}static reject(reason) );

}

常用的方法基本就這些,promise還有很多擴充套件方法,這裡就不一一展示,基本上都是對then方法的進一步封裝,只要你的then方法沒有問題,其他方法就都可以依賴then方法實現。

~

學習有趣的知識,結識有趣的朋友,塑造有趣的靈魂!

promise基本使用 簡單的運動效果

一開始接觸到promise的時候也是比較懵逼的,不太理解他們的奧秘在哪兒,以及我們為什麼要使用它,隨著深入的了解,覺得他很大程度了解決了我們之前的 地域的問題,還有關於資料請求非同步的方式,promise極大程度的解決了我們的 多層巢狀難以閱讀理解的問題。接著入正題,現在我們要實現乙個邊框的劃入效果...

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...