【发布时间】:2021-09-13 21:31:56
【问题描述】:
我有一个发出一系列消息的 observable,比如 obs1。然后是第二个 observable,obs2,它需要 obs1 发出的最后一条消息中的一些数据,并发出另一系列消息。我想“链接”这两个 observables 以产生一个 observable obs3,它从 obs1 和 obs2 串行发出所有消息。
到目前为止我想出的解决方案是:
obs3 = concat(
obs1,
obs1.pipe(
last(),
concatMap(lastMessage => obs2(lastMessage)),
);
但是这个有obs1被执行(订阅)2次的缺陷。
有没有更直接的方法来实现这一点?像concatMapWithSelf() 这样的操作符可以这样工作:
obs3 = obs1.pipe(
concatMapWithSelf(lastMessage => obs2(lastMessage)),
);
谢谢!
【问题讨论】:
标签: rxjs observable concatenation