【发布时间】:2017-05-09 22:44:35
【问题描述】:
我正在尝试重构我不久前编写的一些代码,以合并我所有的可观察对象以同时接收聊天对象。我正在使用角度和离子和火力。
this.userAsync = this.chatsProvider.getMyUserChatsGrpID().mergeMap(grpIDs=> {
if (grpIDs.length > 0) {
return Observable.combineLatest(
grpIDs.map((grpID) => this.chatsProvider.getGroupObjectAsync(grpID.$key).map(grpObject => {
grpObject.object = grpObject;
grpObject.memberProfiles = this.chatsProvider.getMemberProfiles(Object.keys(grpObject.members))
grpObject.latestMessage = this.chatsProvider.getLatestConversation(grpID.$key, grpObject.lastChecked)
grpObject.unreadMessages = this.chatsProvider.getUnreadMessageCount(grpID.$key, this.profileService.getUIDString())
return grpObject
})),
)
} else {
return Observable.of([])
}
目前此类代码将返回所需的对象,但是,grpObject.memberprofiles、.lastestMessage、.unreadMessages 作为可观察对象返回,然后我必须使用异步管道对其进行解包。有没有办法将其全部转换为可观察的项目?
【问题讨论】:
标签: angular firebase ionic-framework rxjs observable