在节点8.5中使用async / await

时间:2017-09-15 02:24:47

标签: node.js async-await

我在Windows上使用最新版本的nodejs并收到此错误:

if(await fnA()) {
         ^^^

SyntaxError: Unexpected identifier

这是我的代码:

if(await fnA()) {
    console.log("1");    
} else {
    console.log("error at 1: ");
}

async function fnA() {
    return new Promise(function (resolve, reject) {
        if(await fnB()) {
            console.log("A"); 
            resolve(true);   
        } else {
            console.log("error at A: ");
            reject();
        }
    });
}

function fnB() {
    return new Promise(function (resolve, reject) {
        console.log("fnB");
        setTimeout(function() {
            console.log("fnB after delay");
            resolve(true);
        }, 3000);
    });
}

我尝试将await移到if条件之外,但仍然遇到同样的错误。

1 个答案:

答案 0 :(得分:3)

您不能在await功能之外使用async

你得到的错误就是因为这个。因此,将if包裹在async函数或其他内容中。