存取 Promise 的值
Promise 通常用於 JavaScript 中的非同步操作。與 Promise 互動的關鍵方法之一是 .then() 方法。此方法允許我們連結多個 Promise 並在後續 Promise 中存取前一個 Promise 的值。
考慮以下 Angular 範例:
promiseB = promiseA.then(function(result) { return result + 1; });
此範例將 PromiseB 定義為一個新 Promise在 PromiseA 解決後立即解決。根據 Angular 文檔,「它的值將是 PromiseA 加 1 的結果。」
問題出現了:一個 Object 類型的 Promise 物件如何保存像數字這樣的原始值?
答案在於 .then() 方法的語意。提供給 .then() 的成功回呼函數傳回一個新值,該值成為新 Promise 的值。在這種情況下,成功回呼函數傳回 result 1,這會增加 result 的值並將其作為 PromiseB 的值傳回。
要存取PromiseB 的值,我們可以連結另一個.then() 方法並提供一個成功回呼函數:
promiseB.then(function(result) { // Use the result of promiseB here });
在這個回調中,我們將存取結果的值,它是前一個值的增量值
ES7 (2016) 引入了async/await語法,提供了另一種處理 Promise 的方法。使用await,我們可以直接解開promise的值,從而無需連結多個.then()方法。例如:
async function doSomething() { let result = await functionThatReturnsPromiseA(); return result + 1; }
在此範例中,await 關鍵字用於非同步函數。 wait 關鍵字暫停函數的執行,直到 functionThatReturnsPromiseA() 解析。一旦 Promise 解決,Promise 的值就會被指派給結果變量,並且函數會繼續執行。
以上是JavaScript 中的 Promise 物件如何保存原始值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!