gpt4 book ai didi

javascript - Rxjs:将两个流与一个依赖于另一个的流合并

转载 作者:太空狗 更新时间:2023-10-29 18:08:05 26 4
gpt4 key购买 nike

我有一个流调用一个服务,该服务返回一个流,该流需要请求的原始流的信息。

this.messages$ = this.selectedChat$
.switchMap(chat => this.chatService.subscribeMessages(chat.room))
.map(messages) =>
messages.map((message: any) => {
//Here need add information of the chat object
return message;
})
);

我看到的所有可以合并流并稍后分离它们的运算符(如 combineLatest)都接收参数,因此,我不能使用原始流信息来调用生成其他流的服务流,我不想在原始流上使用订阅并在订阅中返回一个新流,因为它的代码有点困惑。

有什么建议吗?

最佳答案

switchMap操作中使用selector函数:

this.messages$ = this.selectedChat$
.switchMap(chat => this.chatService.subscribeMessages(chat.room),
(chat,messages)=>({chat,messages})) // create a new object, using the inner observable and the mapped one
.map(data =>
data.messages.map((message: any) => {
// Here data.chat has the chat information
return message;
})
);

有关 switchMap 运算符的更多信息,请查看 here

关于javascript - Rxjs:将两个流与一个依赖于另一个的流合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com