首頁 >web前端 >js教程 >為什麼會出現「await 僅在非同步函數中有效」的情況?

為什麼會出現「await 僅在非同步函數中有效」的情況?

Susan Sarandon
Susan Sarandon原創
2024-12-14 05:37:10933瀏覽

Why Does

非同步函數和「await」關鍵字:是什麼原因導致「await is only valid in async function」錯誤?

經常遇到編碼時,嘗試在外部使用「await」關鍵字時會出現「await 僅在非同步函數中有效」錯誤「非同步」函數,顧名思義。為了理解這個問題,讓我們深入研究您提供的程式碼。

在您的 helper.js 檔案中,您定義了一個名為「myfunction」的「非同步」函數,它正確使用「async」關鍵字並傳回一個變數陣列。但是,該錯誤並非源自於此函數。它位於另一個文件中的“start”函數內。

“start”函數未聲明為“非同步”,因此無法使用“await”關鍵字。要修正這個問題,您需要將“start”轉換為“async”函數,如下面修改後的程式碼所示:

const start = async function(a, b) {
  const result = await helper.myfunction('test', 'test');
}

透過將“start”設定為“async”函數,您可以啟用它暫停執行並等待“myfunction”承諾完成,然後再繼續。

請記住,“await”關鍵字只能在“async”函數中使用,因此請務必使用以下方式聲明您的函數當您打算在其中使用“await”時,請使用“async”關鍵字。這確保了正確的非同步程式碼執行,避免“await 僅在非同步函數中有效”錯誤。

以上是為什麼會出現「await 僅在非同步函數中有效」的情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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