繁体   English   中英

RxJS-将Observable分为两个,等待第一个完成

[英]RxJS - split Observable into two, wait for first to finish

我有一个或多或少看起来像这样的Observable:

-a--b-c---d--e----f--->

其中a,b,c,d,e,f是发射值。

我想将此Observable分成两个Observable,以使最后发出的值是“ alone”。

-a--b-c---d--e-------->

------------------f--->

现在,我要等待第一个Observable完全完成(甚至是内部Observables),然后再执行第二个Observable。

我知道,我可能应该使用concat,但实际上我正在努力将Observable分为两部分

这似乎很简单,因为有skipLasttakeLast运算符:

const source = ...;

const first = source.skipLast(1);
const second = source.takeLast(1);
let Rx = require('rxjs/Rx');

let arr = ["a", "b", "c", "d", "e"]
let par = Rx.Observable.from(arr).partition((v, i) => i < arr.length - 1)
let res = Rx.Observable.concat(par[0], par[1])

res.subscribe(
    x => console.log('On Next: %s', x),
    e => console.log('On Error: %s', e),
    () => console.log('On Complete')
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM