【发布时间】:2018-08-12 03:30:41
【问题描述】:
我的代码是:
async function run() {
await sleep(1);
fs.readFile('list.txt', 'utf8', function (err, text) {
console.log(text);
await sleep(5);
});
}
run();
await sleep(1) 很好,但 await sleep(5) 会导致:
SyntaxError: async 只在 async 函数中有效
fs.readFile 有问题吗?在这种情况下如何使用await?
以上是要测试的简化示例。在我的实际使用中,我需要将await sleep 放在一个回调中,深度嵌套在几个异步函数中。
【问题讨论】:
-
是关于你传递给readFile的第三个参数,它是一个函数。它也必须是异步的,因为您在该函数中使用了 await。
-
尝试在
readFileparameters 中的函数前添加async,如下所示:fs.readFile('list.txt', 'utf8', async function (err, text) ... -
fs.readFile()的回调函数不是异步函数。await只能用于异步函数。 -
你确定你发布了正确的错误信息吗?
标签: javascript node.js