在 JavaScript 中,await 关键字仅在异步函数中有效。当尝试在非异步函数中使用await时,会发生此错误。
请考虑以下代码片段:
// lib/helper.js var myfunction = async function (x, y) { return [x, y]; }; exports.myfunction = myfunction;
此代码定义了一个名为 myfunction 的异步函数。在单独的文件中,编写以下代码:
// anotherFile.js var helper = require('./helper.js'); var start = function (a, b) { const result = await helper.myfunction('test', 'test'); }; exports.start = start;
此代码从帮助程序文件访问 myfunction。但是,它尝试在非异步启动函数中调用await,这会引发“await 仅在异步函数中有效”错误。
要解决此问题,应将启动函数设为异步:
async function start(a, b) { const result = await helper.myfunction('test', 'test'); console.log(result); }
总而言之,使用await 要求封闭函数是异步函数。当错误指定“await 仅在 async 函数中有效”时,请确保调用 wait 的函数正确标记为 async。
以上是为什么 JavaScript 中会出现'await 仅在异步函数中有效”?的详细内容。更多信息请关注PHP中文网其他相关文章!