兩者之間的主要區(qū)別在于,使用回調方法時,我們通常只是將回調傳遞給一個函數(shù),該函數(shù)將在完成時被調用以獲取某些結果。但是,在Promise中,您將回調附加在返回的Promise對象上。
1.callback
回調函數(shù)本身是我們約定俗成的一種叫法,我們定義它,但是并不會自己去執(zhí)行它,它最終被其他人執(zhí)行了。
優(yōu)點:比較容易理解;
缺點:1.高耦合,維護困難,回調地獄;2.每個任務只能指定一個回調函數(shù);3.如果幾個異步操作之間并沒有順序之分,同樣也要等待上一個操作執(zhí)行結束再進行下一個操作。
2.Promise
ES6給我們提供了一個原生的構造函數(shù)Promise,Promise代表了一個異步操作,可以將異步對象和回調函數(shù)脫離開來,通過.then方法在這個異步操作上綁定回調函數(shù),Promise可以讓我們通過鏈式調用的方法去解決回調嵌套的問題,而且由于promise.all這樣的方法存在,可以讓同時執(zhí)行多個操作變得簡單。
promise對象存在三種狀態(tài):
1)Fulfilled:成功狀態(tài)
2)Rejected:失敗狀態(tài)
3)Pending:既不是成功也不是失敗狀態(tài),可以理解為進行中狀態(tài)
Promise的缺點:
1.當處于未完成狀態(tài)時,無法確定目前處于哪一階段。
2.如果不設置回調函數(shù),Promise內部的錯誤不會反映到外部。
3.無法取消Promise,一旦新建它就會立即執(zhí)行,無法中途取消。
想要了解跟多關于web前端培訓課程內容歡迎關注賦能網web前端培訓,賦能網除了這些技術文章外還有免費的高質量web前端培訓課程視頻供廣大學員下載學習
相關: Java培訓JavaWeb之XMLHttpRequest對象的屬性_自學Java真的找不到好工作嗎
本文鏈接:
本文章“前端培訓之Promie和Callback的區(qū)別”已幫助 119 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產權侵權的法律責任!
本文由賦能網 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579