如何从React或Javascript中的对象属性中获取值



为什么我必须用()包装await才能获得我需要的输出?我希望只从对象

获得uid从我导入的函数返回的数据和你看到的完全一样

{uid : 'abcdefg', email:'youremail@gmail.com'}
import {ActiveUser} from './teamMembers.service';
export const retrieveList = async date => {
console.log('active user information here', (await ActiveUser()).uid); 
// outputs: Works as expected
// active user information here abcdefg
console.log('active user information here', await ActiveUser().uid); 
// outputs: 
//Undefined
console.log('active user information here', typeof (await ActiveUser()));
// outputs: 
// object
}

await操作符用于等待Promise (Promise对象表示异步操作的最终完成(或失败)及其结果值),它只能在异步函数中使用。

你需要等待你的异步任务(ActiveUser)一次,之后你可以引用它的数据(这是异步代码发生在那里的解析状态)

import {ActiveUser} from './teamMembers.service';
export const retrieveList = async date => {
const data = await ActiveUser();
const uid = data.uid;
const name = data.name;
}

我建议你读更多的事件循环和并发模型,它背后的JavaScript异步编程的秘密。

关于async——https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

关于事件循环的更多信息——https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop

相关内容

  • 没有找到相关文章

最新更新