无法在简单的NodeJS脚本中使用异步函数

时间:2018-05-30 08:26:35

标签: javascript node.js async-await

所以,NodeJS新手在这里 - 请温柔。 ;)

以下代码在现代浏览器中运行良好:

async function testAsync(){
    return await new Promise(function(resolve){
        setTimeout(function(){
            resolve('Hello World!');
        }, 1000)

    })
}

const test = await testAsync();
console.log(test);

它等待1000毫秒直到打印" Hello World!"正如预期的那样到控制台。

使用我得到的相同代码运行节点10.3.0:

SyntaxError: await is only valid in async function

我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

当您尝试使用await时,您不能在顶层({尚})await testAsync();。相反,请使用.then

testAsync()
  .then(test => console.log(test));

此外,有一个async函数立即返回await版本的Promise并不重要;相反,只需返回Promise:



function testAsync(){
  return new Promise(function(resolve){
    setTimeout(function(){
      resolve('Hello World!');
    }, 1000)
  });
}
testAsync()
  .then(test => console.log(test));