语法错误:等待仅在异步功能中有效

时间:2019-02-21 16:29:21

标签: javascript node.js syntax async-await

我正在尝试编写一个简单的node.js程序,该程序将接收json5文件并将其转换为json文件。我发现了这个https://www.npmjs.com/package/any-json,相信会有用。

这是我目前拥有的代码...

const anyJson = require("any-json");

const str = await anyJson.encode({/* test comment */ "foo": "bar"}, 'json');

但是它给了我这个错误...

const str = await anyJson.encode({/* test comment */ "foo": "bar"}, 'json'); 

(等待中的^^^^^^)

SyntaxError: await is only valid in async function
  

注意:此确切代码可在npm runkit中使用

2 个答案:

答案 0 :(得分:-1)

错误很容易说明。为了等待工作,它应该在异步功能内。

// as you can see await is valid only inside async
async function test() {
   const result = await myfunction()
}

const myfunction = async function(x, y) {
    return anyJson.encode({/* test comment */ "foo": "bar"}, 'json');
} 

答案 1 :(得分:-2)

确切地说,等待仅在异步函数中有效

尝试将代码包装在await块中(并直接执行)

(await () => {
  //Your code here
})()