在Angular 4.x中使用RxJS,我看到兩種截然不同的模式,用於從用戶發起的操作流中生成Observables。一個流是用戶單擊生成新對象的「添加項目」按鈕的直接結果。另一個是我使用的一些第三方代碼發佈的一系列事件。RxJS:正確的方式來手動發射Observable
我想能夠結合使用像'combineLatest'這樣的兩個流來生成一個單一的Observable。
用我的按鈕,我已經遵循了以下模式:
const signal = Observable.create(
(observer) => {
this.additem= (item) => observer.next(item);
}
);
this.item$ = signal.map((item) => [item])
.scan((accumulator, value) => {
return accumulator.concat(value);
});
但是,我看到了很多的信息,說我應該使用對象來代替 - 這我想用我的事件用回調像這樣:
sort$ = new Subject();
sortChange(sort){
sort$.next(sort);
}
然後我試圖將這些類似這樣的結合:
combine$ = Observable.combineLatest(sort$, item$,
(sort, items) => {
return "something that does stuff with these";}
);
我的問題是 - 「手動」生成流的首選模式是什麼?可以/應該將觀察對象和主體組合成一個單獨的可觀察對象,就像我在這裏試圖做的一樣?
我認爲,這個信息的最佳來源是這個問題的答案:https://stackoverflow.com/questions/39494058/angular-2-behavior-subject-vs -observable即使你的問題對我來說不完全是一個重複的東西,感覺這個答案可能是你需要做出選擇的。 – Supamiu
如果你想結合兩個Observable你可以使用運算符合並 – alehn96