首頁 >web前端 >js教程 >JavaScript 中的 Promise 物件如何保存原始值?

JavaScript 中的 Promise 物件如何保存原始值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-25 09:57:14749瀏覽

How Do Promises, Objects in JavaScript, Hold Primitive Values?

存取 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn