作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 ngOnInIt 函数中从 firestore 检索数据,并尝试在同一生命周期中使用该数据。如何使用Async来解决问题?
ngOnInit() {
this.service.getUserData().subscribe(actionArray =>{
this.userList = actionArray.map(item =>{
console.log("Items", item);
console.log("Data : ", item.payload.doc.data());
return {
id : item.payload.doc.id,
...item.payload.doc.data()
} as customersUser;
})
});
console.log("User List : ", this.userList);
this.getUserData();
}
getUserData(){
this.userList.map(item =>{
if(item.id == this.userId){
this.userObj = item;
}
})
console.log(this.userObj);
}
我收到了一个空的 userList[] 数组,因为该函数不会等待接收快照更改。
最佳答案
移动此行
console.log("User List : ", this.userList);
到 userList
填充数据的位置,即订阅者内部。所以,而不是
ngOnInit() {
this.service.getUserData().subscribe(actionArray =>{
this.userList = actionArray.map(aMappingFunction);
});
console.log("User List : ", this.userList);
this.getUserData();
}
做
ngOnInit() {
this.service.getUserData().subscribe(actionArray =>{
this.userList = actionArray.map(aMappingFunction);
console.log("User List : ", this.userList);
});
this.getUserData();
}
关于javascript - 如何在 ngOnInIt 函数中使用异步与 Angular8 firestore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58185052/
我是一名优秀的程序员,十分优秀!