首頁 > web前端 > js教程 > 主體

如何使用 async-await 存取非同步函數的回傳值?

DDD
發布: 2024-11-12 22:39:02
原創
308 人瀏覽過

How to Access Return Values from Async Functions with async-await?

使用async-await 從非同步函數傳回值

使用async-await 語法呼叫非同步函數時,直接存取回傳值可能會導致待處理的Promise。本文探討如何解決此問題。

等待非同步範圍以外的值

您最初嘗試記錄 getData 函數的回傳值失敗,因為您嘗試等待非同步範圍之外的值。 async-await 語法只能在非同步函數或區塊中使用(由 async 關鍵字表示)。

非同步IIFE 來包裝日誌記錄

要解決此問題,您可以將console.log 語句包裝在非同步立即呼叫函數表達式(IIFE)中,例如this:

(async () => {
  console.log(await getData());
})();
登入後複製
登入後複製

這確保日誌記錄在非同步上下文中執行,從而允許等待語法正確工作。

省略 Async/Await for Promise Returns

在您的範例中,axios 傳回一個 Promise。在這種情況下,您可以透過省略getData 函數的async/await 語法並直接使用Promise 物件來簡化程式碼:

function getData() {
  return axios.get('https://jsonplaceholder.typicode.com/posts');
}
登入後複製

然後,您仍然可以使用非同步IIFE 將結果記錄為before:

(async () => {
  console.log(await getData());
})();
登入後複製
登入後複製

遵循這些方法,您可以確保使用async-await 從非同步函數傳回的值被正確存取和已處理。

以上是如何使用 async-await 存取非同步函數的回傳值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板