使用'等待'和' async'在NodeJS中正确

时间:2017-10-25 11:17:27

标签: node.js async-await

我有这段代码:

function func(x) {
    return func2(x)
        .then((result) => {
            let a = await func3(result.a);
            let b = await func3(result.b);
            return {'a': a, 'b': b};
        });
}

我需要将async()放在某个地方,但我无法确定在哪里。

我在=>之前和=>之后尝试过,但在这两种情况下我都遇到了语法错误。

有人可以帮忙吗?

谢谢。

P.S,如果我在func的声明中使用它,那么我会收到运行时错误await is a reserved word

2 个答案:

答案 0 :(得分:3)

我认为你想要实现类似的东西

function func(x) {
    return func2(x)
        .then(async (result) => {
            let a = await func3(result.a);
            let b = await func3(result.b);
            return {'a': a, 'b': b};
        });
}

async function func(x) {
    const result = await func2(x)
    let a = await func3(result.a);
    let b = await func3(result.b);
    return {'a': a, 'b': b};
}

考虑到您修改过的问题,您似乎使用的版本nodejs不支持async/await

答案 1 :(得分:0)

知道了:

function func(x) {
    return func2(x)
        .then((result) => {
            let a = async() => {await func3(result.a)};
            let b = async() => {await func3(result.b)};
            return {'a': a, 'b': b};
        });
}