我试图使用Async / Await读取JSON
文件,创建了基于Native async/await approach的示例,但出现了此错误。
SyntaxError:等待仅在异步功能中有效
这是我的代码。
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);
我的代码有什么问题?我的节点版本是11.9.0,我的npm版本是6.7.0,我正在使用Arch Linux。
答案 0 :(得分:3)
您需要在异步函数中调用await。
(async () => {
try {
const var1 = await parseJM();
console.log(var1);
} catch (e) {
console.error(e.message);
}
})();
编辑:如@Nik Kyriakides所建议
答案 1 :(得分:2)