나는 모든 관찰 대상을 병합하여 동시에 chat 객체를 받기 위해 잠깐 쓴 코드를 리펙토링하려고합니다. 각도와 이온 및 파이어베이스를 사용하고 있습니다.Observable 내에서 일련의 observables를 병합하는 방법
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 난 후 비동기 파이프를 이용하여 푸는이 관찰 가능한로 반환 요구 객체를 반환한다. 하나를 관찰 할 수있는 항목으로 되돌리려면 모든 것을 변환 할 수있는 방법이 있습니까?
하지만 여전히 내 grpID가 필요합니다. 나머지 키는 관찰 가능합니다 –