40 cards · basic cards · AI-written, checked twice. Edit anything.
- JavaScript 中的 Promise 是什麼?
Show answer
一種物件,代表非同步操作最終完成或失敗的結果,以及其產生的值。
- Promise 有哪三種狀態?
Show answer
pending(等待中)、fulfilled(已實現,也稱 resolved)或 rejected(已拒絕)。
- 如何建立新的 Promise?
Show answer
使用 Promise 建構函式:new Promise((resolve, reject) => { ... })
- .then() 方法會回傳什麼?
Show answer
一個新的 Promise,其結果為回呼函式的回傳值。
- 如何用 .catch() 處理 Promise 的 rejection?
Show answer
.catch(error => { ... }) 會在 Promise 被 reject 時執行,並接收拒絕的原因。
- .finally() 的作用是什麼?
Show answer
在 Promise 完成(不論是 fulfilled 或 rejected)後執行程式碼,並回傳一個新的 Promise。
- Promise.all() 的作用是什麼?
Show answer
接收一個 Promise 陣列,回傳單一 Promise:當所有 Promise 都 resolve 時才 resolve,只要有任何一個 reject 就 reject。
- Promise.race() 的作用是什麼?
Show answer
接收一個 Promise 陣列,回傳的 Promise 會以最先完成(settle)的那一個的結果來 resolve 或 reject。
- Promise.resolve() 的作用是什麼?
Show answer
回傳一個已經以指定值 fulfilled 的 Promise。
- Promise.reject() 的作用是什麼?
Show answer
回傳一個已經以指定原因 rejected 的 Promise。
- async 關鍵字的作用是什麼?
Show answer
將函式標示為非同步,並讓它一律回傳 Promise。
- await 關鍵字的作用是什麼?
Show answer
暫停 async 函式的執行,直到 Promise 完成,並回傳其解析出的值。
- async 函式一律會回傳什麼?
Show answer
Promise,即使函式回傳的是一般的值。
- 如何處理 async 函式中的錯誤?
Show answer
使用 try/catch:try { ... } catch (error) { ... }
- 在 async 函式中可以依序 await 多個 Promise 嗎?
Show answer
可以,每個 await 都會暫停執行,直到該 Promise 解析完成,才會進行下一個。