angular - 使用后未定义并将值保存到地图函数(Angular,TypeScript)中的数组中
问题描述
我最近在一个使用 Angular 和 TypeScript 的项目中工作。做 CRUD,我有下一个代码:
// Return User's List from the DB
get_AllUsers(){
return this.fireservices.collection('users').snapshotChanges();
}
getAllUsersList() : User[]{
let userList : User[];
this.get_AllUsers().subscribe(users => {
userList = users.map(e => {
return {
uid: e.payload.doc.id,
...
visited: e.payload.doc.data()['visited']
}
}); //console.log(userList) here print the array correctly
});
return userList; //Here I received an undefined array, but I want the array with the data
}
我使用 Firebase 作为数据库。我有一个为用户创建的模型(一种保存在数据库中的数据),我希望返回,返回列出的用户数组,但我收到一个未定义的数组。我怎么能解决这个问题?我已经添加了一些注释来解释错误。
PD。有没有办法直接在创建的模型中接收 Firebase 数据以在应用程序中使用它(在这种情况下为“用户”)?
谢谢。
解决方案
尝试直接做:
function getAllUsersList() : User[] {
let userList : User[] = [];
this.get_AllUsers().subscribe(users => {
users.map(e => {
userList.push({
uid: e.payload.doc.id,
visited: e.payload.doc.data()['visited']
});
});
});
return userList;
}
推荐阅读
- node.js - 节点执行忽略参数
- javascript - 如何使用 InAppBrowser(android)防止重复使用上一个会话的 cookie
- java - 想要获得当前地址位置
- python-3.x - influxdb-client 的 SSL 证书过期错误
- snowflake-cloud-data-platform - Okta Snowflake 角色创建
- mysql - 将值从 B 表插入到在 mysql 中不重复的 A 表中
- c# - 类库,.NET 3.1 核心:错误 CS5001 程序不包含静态 Main 方法
- cron - 安排多天的 Maximo 升级?
- php - 行内的行 MySQL
- celery - 启动气流调度程序时出错 - 无法从“celery.backends.base”导入名称“BaseKeyValueStoreBackend”