我想将Observable转换为User []。
谷歌搜索后,我找到了一个解决方案,但转换仅在map内完成。
users : User[] = [];
this.userService.getUsersList() // Observable<Any>
.map((listUsers: Array<any>) => {
let result:Array<User> = [];
if (listUsers) {
listUsers.forEach((erg) => {
result.push(new User(erg.id, erg.name, erg.username, erg.email, erg.password, erg.age, erg.active, erg.roles));
});
}
console.log('----------------Size: ' + result.length); // Output: 5 --> TRUE
return result;
})
.subscribe(users => this.users = users);
console.log('----------------Size: ' + result.length); // Output: 0 --> FALSE
所以没关系,我可以得到map内User []数组的大小。 我的问题是,如何获取大小或在地图外读取数组User []。
谢谢。
答案 0 :(得分:0)
尝试使用承诺。
服务文件示例:
getList(id: number): Promise<any>
{
return this.http.get(`${this.baseUrl}/../${id}`).toPromise();
}
然后在您的控制器上,尝试使用async
,wait
和then
。
请尝试参考this thread