您好,歡迎來到賦能網(wǎng)!

前端培訓(xùn)之Promie和Callback的區(qū)別

賦能網(wǎng) 2023-06-14 119

兩者之間的主要區(qū)別在于,使用回調(diào)方法時,我們通常只是將回調(diào)傳遞給一個函數(shù),該函數(shù)將在完成時被調(diào)用以獲取某些結(jié)果。但是,在Promise中,您將回調(diào)附加在返回的Promise對象上。 

1.callback

回調(diào)函數(shù)本身是我們約定俗成的一種叫法,我們定義它,但是并不會自己去執(zhí)行它,它最終被其他人執(zhí)行了。

優(yōu)點(diǎn):比較容易理解;

缺點(diǎn):1.高耦合,維護(hù)困難,回調(diào)地獄;2.每個任務(wù)只能指定一個回調(diào)函數(shù);3.如果幾個異步操作之間并沒有順序之分,同樣也要等待上一個操作執(zhí)行結(jié)束再進(jìn)行下一個操作。

2.Promise

ES6給我們提供了一個原生的構(gòu)造函數(shù)Promise,Promise代表了一個異步操作,可以將異步對象和回調(diào)函數(shù)脫離開來,通過.then方法在這個異步操作上綁定回調(diào)函數(shù),Promise可以讓我們通過鏈?zhǔn)秸{(diào)用的方法去解決回調(diào)嵌套的問題,而且由于promise.all這樣的方法存在,可以讓同時執(zhí)行多個操作變得簡單。

promise對象存在三種狀態(tài):

1)Fulfilled:成功狀態(tài)

2)Rejected:失敗狀態(tài)

3)Pending:既不是成功也不是失敗狀態(tài),可以理解為進(jìn)行中狀態(tài)

Promise的缺點(diǎn):

1.當(dāng)處于未完成狀態(tài)時,無法確定目前處于哪一階段。

2.如果不設(shè)置回調(diào)函數(shù),Promise內(nèi)部的錯誤不會反映到外部。

3.無法取消Promise,一旦新建它就會立即執(zhí)行,無法中途取消。

想要了解跟多關(guān)于web前端培訓(xùn)課程內(nèi)容歡迎關(guān)注賦能網(wǎng)web前端培訓(xùn),賦能網(wǎng)除了這些技術(shù)文章外還有免費(fèi)的高質(zhì)量web前端培訓(xùn)課程視頻供廣大學(xué)員下載學(xué)習(xí)


相關(guān): Java培訓(xùn)JavaWeb之XMLHttpRequest對象的屬性_自學(xué)Java真的找不到好工作嗎

本文鏈接:

本文章“前端培訓(xùn)之Promie和Callback的區(qū)別”已幫助 119 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: