因为在最新版本中从angularfire2中删除$ key我试图在我的getAll服务方法中返回之前添加密钥,如:
getAll(): Observable<any> {
return this.loginService.loginData.take(1).flatMap( userdata => {
var RefItems = this.loginService.afDB.list(`/games/${userdata.gameid}/categories/`);
RefItems.snapshotChanges().map(categories => {
return categories.map(m => ({ key: m.key, ...m.payload.val() }));
});
return RefItems.valueChanges().map( categories => {
return categories.map((category) => {
category["matches"] = this.matchesService.getAll(category["key"]);
return category;
})
});
})
}
但似乎要迟到(关键不在valueChanges方法中),有人对我有所了解吗? :)
答案 0 :(得分:1)
我不知道问题到底在哪里。 并不确定是什么部分:
py -m timeit "'validate_field_name'.split('_', maxsplit=1)[-1]"
1000000 loops, best of 3: 0.568 usec per loop
py -m timeit "'validate_field_name'.split('_', 1)[-1]"
1000000 loops, best of 3: 0.317 usec per loop
可以,但您可以尝试修改代码以形成:
return RefItems.valueChanges().map( categories => {
return categories.map((category) => {
category["matches"] =
this.matchesService.getAll(category["key"]);
return category;
})
});
它可能会调用可能无法将订阅分配给Observable,但您会想出来。希望它对你有所帮助