我有一个看起来或多或少像这样的Observable:
-a--b-c---d--e----f--->
其中a,b,c,d,e,f是发射值。
我想将这个Observable分成两个Observable,这样最后一个发射值就是"单独"。
-a--b-c---d--e-------->
------------------f--->
现在,我想等待第一个Observable完全完成(甚至是内部Observable),然后执行第二个Observable。
我知道,我应该使用concat,但我实际上正在努力将Observable分成两个
答案 0 :(得分:3)
这似乎相当简单,因为有skipLast
和takeLast
运算符:
const source = ...;
const first = source.skipLast(1);
const second = source.takeLast(1);
答案 1 :(得分: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')
)