提问者:小点点

在JavaScript中使用await from函数返回JSON


我有一个异步函数,它返回JSON:

async function test() {
    var answer = { "status": 0 };
    return answer;
}

情况1:调用函数时使用await调用它会得到以下输出:

var test_k = await test();
console.log(test_k);

输出:{status:0}

情况2:稍后对返回的变量使用await调用它会得到以下输出:

var test_p = test();

await test_p;
console.log(test_p);

输出:承诺{{status:0}}

上面的输出是在node.jsV12.18.3环境中生成的。

在案例1中,我可以访问test_k.status。我不能在第二种情况下这样做。我需要访问案例2中的JSON对象。我怎么能那么做?


共1个答案

匿名用户

你的案例2代码应该是:

var test_p = test();

var output = await test_p;
console.log(output);

等待test_ppromise不改变该promise,它将输出结果供您分配给一个变量,因此您需要记录该输出,而不仅仅是原始的function/promise。