我有一个异步函数,它返回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对象。我怎么能那么做?
你的案例2代码应该是:
var test_p = test();
var output = await test_p;
console.log(output);
等待test_p
promise不改变该promise,它将输出结果供您分配给一个变量,因此您需要记录该输出,而不仅仅是原始的function/promise。