RxJS按顺序执行两个可观察对象

时间:2018-11-28 13:28:37

标签: javascript typescript rxjs observable

说我有两个观测值obs1obs2

obs1.subscribe(res => { //do stuff with output1});
obs2.subscribe(res => { //do stuff with output2});

仅在完成obs2后,我才想订阅obs1。我知道的唯一方法是丑陋的:

obs1.pipe(finalize(() => {
  obs2.subscribe(res => { //do stuff with output2});
})).subscribe(res => {//do stuff with output1})

有没有更优雅的方式?添加第三个obs3将使代码很难阅读。

编辑: 从以前的答案来看,我不清楚如何从单个可观测数据中获取数据。以下代码正是我想要的:

concat(
  obs1.pipe(tap( res => console.log(res))),
  obs2.pipe(tap( res => console.log(res)))
).subscribe()

以前的答案是:

concat(obs1, obs2).subscribe(res => console.log(res))

,但是在这种情况下,最终响应将obs1obs2的响应合并在一起,而我不知道如何将其分开。

0 个答案:

没有答案