簡體   English   中英

RXJS combineLatest/zip 問題

[英]RXJS combineLatest/zip questions

我想得到 console.log 結果: ["abc", 122, 123] ,操作 zip/combineLatest 通常適合我的需要。

但是,當 time 或 time2 沒有任何值時,例如: var time = Rx.Observable.of(); ,那么 console.log 結果不是["abc", 122, 123] 那么如何解決呢?

 var time = Rx.Observable.of(['abc']); var time2= Rx.Observable.of([122,123]); Rx.Observable.zip(time,time2 , (a, b) => [...a, ...b]) .subscribe(data => console.log("data:",data)); Rx.Observable.merge(time,time2).subscribe(data => { console.log("data-M:",data); }) Rx.Observable.combineLatest(time,time2 , (a,b) => {return a.concat(b)}) .subscribe(data => console.log("data:",data));
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <script src="https://unpkg.com/@reactivex/rxjs@5.0.3/dist/global/Rx.js"></script> </body> </html>

那是因為Rx.Observable.of()創建了一個空的 observable。 combineLatestzip都具有值時,它們都會觸發。 這就是它從不點火的原因。 Rx.Observable.of('')會工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM