首頁 > web前端 > js教程 > 為什麼'console.log”出現在頂級'async”程式碼中的非同步函數結果之前?

為什麼'console.log”出現在頂級'async”程式碼中的非同步函數結果之前?

Susan Sarandon
發布: 2024-12-17 18:45:18
原創
646 人瀏覽過

Why Does `console.log` Appear Before Async Function Results in Top-Level `async` Code?

為什麼頂層非同步函數中的日誌訊息後會發生非同步執行?

在 async/await 中,假設非同步函數將傳回 Promise。然而,當在頂層使用非同步函數而沒有明確的 Promise 處理時,就會出現複雜性。

理解為什麼它不起作用

這裡的問題是 main 函數傳回一個 Promise ,使 console.log('outside: ' text) 語句陷入困境,沒有立即輸出的值。 async/await 語法導致「inside」訊息在「outside」訊息之後被記錄,因為它會等待 main() 返回的 Promise 解決後再繼續。

解決問題

要在沒有明確 then() 處理的情況下使用回傳值,您有三個選項:

1。模組中的頂層 Await

(在支援 ES2022的現代環境中可用)

2.永不拒絕的頂級非同步函數

3.然後趕上

以上是為什麼'console.log”出現在頂級'async”程式碼中的非同步函數結果之前?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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