亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

對Promise的學習總結(jié)與思考

canopus4u / 3378人閱讀

摘要:學習地址詳見正文調(diào)用或并不會終結(jié)的參數(shù)函數(shù)的執(zhí)行調(diào)用以后,后面的還是會執(zhí)行,并且會首先打印出來。這是因為立即的是在本輪事件循環(huán)的末尾執(zhí)行,總是晚于本輪循環(huán)的同步任務(wù)。另外,方法指定的回調(diào)函數(shù),如果運行中拋出錯誤,也會被方法捕獲。

學習地址詳見:http://es6.ruanyifeng.com/#do...

正文

1.調(diào)用resolve或reject并不會終結(jié) Promise 的參數(shù)函數(shù)的執(zhí)行

new Promise((resolve, reject) => {
  resolve(1);
  console.log(2);
}).then(r => {
  console.log(r);
});
// 2
// 1

調(diào)用resolve(1)以后,后面的console.log(2)還是會執(zhí)行,并且會首先打印出來。這是因為立即 resolved 的 Promise 是在本輪事件循環(huán)的末尾執(zhí)行,總是晚于本輪循環(huán)的同步任務(wù)。
一般來說,調(diào)用resolve或reject以后,Promise 的使命就完成了,后繼操作應(yīng)該放到then方法里面,而不應(yīng)該直接寫在resolve或reject的后面。所以,最好在它們前面加上return語句,這樣就不會有意外。

2.關(guān)于catch

getJSON("/posts.json").then(function(posts) {
  // ...
}).catch(function(error) {
  // 處理 getJSON 和 前一個回調(diào)函數(shù)運行時發(fā)生的錯誤
  console.log("發(fā)生錯誤!", error);
});

上面代碼中,getJSON方法返回一個 Promise 對象,如果該對象狀態(tài)變?yōu)閞esolved,則會調(diào)用then方法指定的回調(diào)函數(shù);如果異步操作拋出錯誤,狀態(tài)就會變?yōu)閞ejected,就會調(diào)用catch方法指定的回調(diào)函數(shù),處理這個錯誤。另外,then方法指定的回調(diào)函數(shù),如果運行中拋出錯誤,也會被catch方法捕獲。

1)狀態(tài)變成reject?的方式有兩個:手動操作 reject() reject方法的作用,等同于拋出錯誤; 異步操作拋出錯誤,狀態(tài)就會變?yōu)閞ejected

2)觸發(fā)catch: 異步操作狀態(tài)變?yōu)閞ejected; then方法運行中拋出錯誤

3)一般來說,不要在then方法里面定義Reject狀態(tài)的回調(diào)函數(shù)(即then的第二個參數(shù)),總是使用catch方法。
思考:第一步出錯,是直接執(zhí)行catch還是接著走then? 直接被catch

3.Promise 內(nèi)部的錯誤不會影響到 Promise 外部的代碼
4.任務(wù)隊列
new Promise是同步的,會馬上執(zhí)行function參數(shù)中的事情。等function參數(shù)執(zhí)行完,new Promise才返回一個promise實例對象。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/89047.html

相關(guān)文章

  • JS筆記

    摘要:從最開始的到封裝后的都在試圖解決異步編程過程中的問題。為了讓編程更美好,我們就需要引入來降低異步編程的復雜性。異步編程入門的全稱是前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個方面。 TypeScript 入門教程 從 JavaScript 程序員的角度總結(jié)思考,循序漸進的理解 TypeScript。 網(wǎng)絡(luò)基礎(chǔ)知識之 HTTP 協(xié)議 詳細介紹 HTT...

    rottengeek 評論0 收藏0
  • promise學習筆記

    摘要:第一個回調(diào)函數(shù)完成以后,會將返回結(jié)果作為參數(shù),傳入第二個回調(diào)函數(shù)。捕獲錯誤方法是的別名,用于指定發(fā)生錯誤時的回調(diào)函數(shù)。處理前一個回調(diào)函數(shù)運行時發(fā)生的錯誤出錯啦對象的錯誤具有冒泡性質(zhì),會一直向后傳遞,直到被捕獲為止。 前言 一直想寫一篇關(guān)于promise的文來總結(jié)一下之前零零散散的promise知識點,趁著工作閑暇,來做個總結(jié)。PS:本文適合有一定JavaScript基礎(chǔ)的童鞋閱讀。 什...

    cheukyin 評論0 收藏0
  • 寫技術(shù)博客那點事

    摘要:從現(xiàn)在開始,養(yǎng)成寫技術(shù)博客的習慣,或許可以在你的職業(yè)生涯發(fā)揮著不可忽略的作用。如果想了解更多優(yōu)秀的前端資料,建議收藏下前端英文網(wǎng)站匯總這個網(wǎng)站,收錄了國外一些優(yōu)質(zhì)的博客及其視頻資料。 前言 寫文章是一個短期收益少,長期收益很大的一件事情,人們總是高估短期收益,低估長期收益。往往是很多人堅持不下來,特別是寫文章的初期,剛寫完文章沒有人閱讀會有一種挫敗感,影響了后期創(chuàng)作。 從某種意義上說,...

    ddongjian0000 評論0 收藏0
  • 寫技術(shù)博客那點事

    摘要:從現(xiàn)在開始,養(yǎng)成寫技術(shù)博客的習慣,或許可以在你的職業(yè)生涯發(fā)揮著不可忽略的作用。如果想了解更多優(yōu)秀的前端資料,建議收藏下前端英文網(wǎng)站匯總這個網(wǎng)站,收錄了國外一些優(yōu)質(zhì)的博客及其視頻資料。 前言 寫文章是一個短期收益少,長期收益很大的一件事情,人們總是高估短期收益,低估長期收益。往往是很多人堅持不下來,特別是寫文章的初期,剛寫完文章沒有人閱讀會有一種挫敗感,影響了后期創(chuàng)作。 從某種意義上說,...

    NSFish 評論0 收藏0
  • promise學習(3)

    摘要:此時,由于只有一個的狀態(tài)能夠確定,所以執(zhí)行的是唯一那個確定狀態(tài)的函數(shù),而不會執(zhí)行其他的,但是并不會阻止其他的執(zhí)行。在實際應(yīng)用中,常用來設(shè)置超時操作,比如接口請求超時等。思考這個其實并不是矛盾,接受的是返回的的狀態(tài),與原來的沒有關(guān)系。 原文地址 Promise.race // `delay`毫秒后執(zhí)行resolve function timerPromisefy(delay) { ...

    阿羅 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<