Promise和Callback的區別

2022年11月01日17:37:38 熱門 1756

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

Promise和Callback的區別 - 天天要聞

1.callback

回調函數本身是我們約定俗成的一種叫法,我們定義它,但是並不會自己去執行它,它最終被其他人執行了。

優點:比較容易理解;
缺點:1.高耦合,維護困難,回調地獄;2.每個任務只能指定一個回調函數;3.如果幾個異步操作之間並沒有順序之分,同樣也要等待上一個操作執行結束再進行下一個操作。

2.Promise

ES6給我們提供了一個原生的構造函數Promise,Promise代表了一個異步操作,可以將異步對象和回調函數脫離開來,通過.then方法在這個異步操作上綁定回調函數,Promise可以讓我們通過鏈式調用的方法去解決回調嵌套的問題,而且由於promise.all這樣的方法存在,可以讓同時執行多個操作變得簡單。

promise對象存在三種狀態:
1)Fulfilled:成功狀態
2)Rejected:失敗狀態
3)Pending:既不是成功也不是失敗狀態,可以理解為進行中狀態

Promise的缺點:
1.當處於未完成狀態時,無法確定目前處於哪一階段。
2.如果不設置回調函數,Promise內部的錯誤不會反映到外部。
3.無法取消Promise,一旦新建它就會立即執行,無法中途取消。

想要了解更多關於web前端技術內容歡迎關注尚硅谷教育!

熱門分類資訊推薦

曾小賢的上司Lisa榕,現實中不僅才貌雙全,還嫁給了CEO - 天天要聞

曾小賢的上司Lisa榕,現實中不僅才貌雙全,還嫁給了CEO

曾小賢的上司Lisa榕,現實中不僅才貌雙全,還嫁給了CEO雖然說《愛情公寓》這部劇在劇情上充滿了爭議,但是一定程度上,這部劇也是很多人的回憶,是伴隨了一代人的青春回憶,而且劇中的很多角色都成為了經典,他們的口頭禪也一直被拿來玩兒梗。
Lisa榕做主持多年沒紅,被陳赫拉進愛情公寓爆紅,如今怎樣了 - 天天要聞

Lisa榕做主持多年沒紅,被陳赫拉進愛情公寓爆紅,如今怎樣了

談到《愛情公寓》這部火爆一時的歡樂喜劇,大家肯定都不陌生。不知道大家是否還記得《愛情公寓》中那個把曾小賢治得服服帖帖的女上司Lisa榕,現實中的她名叫榕榕,和劇中的形象也判若兩人。1981年出生在遼寧瀋陽的榕榕,畢業於上海戲劇學院,後來成為了上海東方傳媒集團有限公司的一名主持人。