【发布时间】:2019-07-02 16:58:59
【问题描述】:
我试图使用 Async/Await 读取 JSON 文件,我创建了基于 Native async/await approach 的示例,但出现此错误。
SyntaxError: await 仅在异步函数中有效
这是我的代码。
const fs = require('fs-extra');
const xml2js = require('xml2js');
const parser = new xml2js.Parser();
const path = "file.json";
function parseJM() {
return new Promise(function (resolve, reject) {
fs.readFile(path, { encoding: 'utf-8'}, (err, data) => {
if (err) { reject(err); }
else {
resolve (parser.parseString(data.replace(/<ent_seq>[0-9]*<\/ent_seq>/g, "")
.replace(/&(?!(?:apos|quot|[gl]t|amp);|#)/g, '')));
}
});
});
}
const var1 = await parseJM();
console.log(var1);
我的代码有什么问题?我的 node 版本是 11.9.0,我的 npm 版本是 6.7.0,我使用的是 Arch Linux。
【问题讨论】:
-
我的代码有什么问题? ---> await 仅在 async 函数中有效,就像您已经在问题中回答一样
-
错误告诉你代码到底出了什么问题。
-
你在这里使用
fs-extra,所以不要打扰使用new Promise..All fs methods return promises if the callback isn't passed. -
这样写的目的,promise本身是不够的。
-
我不明白为什么这个社区对人们如此苛刻
标签: javascript node.js asynchronous