非同步函數和「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中文網其他相關文章!