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