內容簡介
自從2015年被引入JavaScript以來,Promise已經成為這門語言的重要組成部分。所有新的異步應用程式接口都是基於Promise構建的。正因為如此,深入理解Promise的原理是JavaScript開發人員的進階必修課,也是所有JavaScript編程工作的重中之重。本書共有5章,篇幅短小精悍,代碼清晰易懂。每一章從不同的方面展示了使用Promise的關鍵點和難點。隨書附贈的Promise速查表有助於隨用隨查。讀完本書,你將能在自己的項目中遊刃有餘地進行異步編程。現在就跟隨專業JavaScript程式設計師尼古拉斯·C.扎卡斯,開啟JavaScript Promise之旅吧!
圖書目錄
中文版序
前言
第 1章 Promise基礎 1
1.1 Promise的生命周期 2
1.1.1 用then()分配處理器 4
1.1.2 用catch()分配拒絕處理器 7
1.1.3 用finally()分配解決處理器 8
1.1.4 為已確定的Promise分配處理器 12
1.1.5 處理器和微任務 13
1.2 創建未解決的Promise 16
1.3 創建已解決的Promise 22
1.3.1 使用Promise.resolve() 22
1.3.2 使用Promise.reject() 24
1.3.3 非Promise 的thenable 對象 24
1.4 小結 28
第 2 章 鏈式Promise 31
2.1 捕獲錯誤 33
2.2 在鏈式Promise 中使用finally() 37
2.3 從鏈式Promise 中返回值 42
2.4 從鏈式Promise 中返回Promise 45
2.5 小結 54
第3 章 多個Promise 協同工作 57
3.1 Promise.all() 方法 57
3.2 Promise.allSettled() 方法 71
3.3 Promise.any() 方法 82
3.4 Promise.race() 方法 89
3.5 小結 95
第4 章 異步函式和await 表達式 97
4.1 定義異步函式 98
4.2 異步函式的不同之處 99
4.2.1 返回值總是一個Promise 100
4.2.2 拋出的錯誤是處於拒絕狀態的Promise 103
4.2.3 可以使用await 表達式 105
4.2.4 可以使用for-await-of 循環 114
4.3 頂層await 表達式 118
4.4 小結 120
第5 章 追蹤未處理的拒絕情況 123
5.1 檢測未處理的拒絕情況 124
5.2 在Web 瀏覽器中追蹤未處理的拒絕情況 126
5.2.1 在Web 瀏覽器中報告未處理的拒絕情況 131
5.2.2 在Web 瀏覽器中避免出現控制台警告 133
5.2.3 進行處理 134
5.3 在Node.js 中追蹤未處理的拒絕情況 136
5.4 小結 142
後記 145
常見問題解答 147