簡體   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