首先我写了这样的东西:
(async function() {
const value = await Promise.resolve({a: 3}).a
console.log(value)
})().catch(console.error);
但我很快得出结论,这行不通,因为我们要等待a
什么的财产Promise.resolve
返回,这是未定义的。
所以我试着包裹我的await
调用括号:
(async function() {
const value = await(Promise.resolve({a: 3})).a
console.log(value)
})().catch(console.error);
这也不起作用。 (它记录undefined
)
所以这似乎是提取的唯一方法a
prop 是做这样的事情:
(async function() {
const resolvedValue = await Promise.resolve({a: 3});
let aProp = resolvedValue['a'];
})().catch(console.error);
,这会添加一行不必要的代码。
我觉得这样有点违背了异步/等待的目的。这是正确的还是我错过了什么?
你需要包裹await
关键字和括号中的承诺,如下所示:
const value = (await Promise.resolve({a: 3})).a;
这样你就可以等待承诺,然后访问a
解析值的属性。
await(Promise.resolve({a: 3})).a
不起作用,因为await
不是函数,而是运算符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)