为什么我不能从异步函数返回的对象中单行对象属性?
Why can't I single-line object properties from objects returned from async functions?
我想使用从异步函数返回的对象。
async function myPromise() {
console.log("Single-line", await getUsers().quote);
let users = await getUsers();
console.log("Multi-line", users.quote);
}
async function getUsers() {
return await new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
name: "Jeff",
id: 1,
quote: "Hello world!"
});
}, 1000)
});
}
myPromise();
为什么我必须先将异步函数的结果赋值给一个变量,然后才能使用返回对象中存储的属性?
属性访问器优先于await
运算符,所以需要加括号:
(await getUsers()).quote
我想使用从异步函数返回的对象。
async function myPromise() {
console.log("Single-line", await getUsers().quote);
let users = await getUsers();
console.log("Multi-line", users.quote);
}
async function getUsers() {
return await new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
name: "Jeff",
id: 1,
quote: "Hello world!"
});
}, 1000)
});
}
myPromise();
为什么我必须先将异步函数的结果赋值给一个变量,然后才能使用返回对象中存储的属性?
属性访问器优先于await
运算符,所以需要加括号:
(await getUsers()).quote