1
RxJS中是否有一個運算符與filter()
一樣工作,但接受允許返回Observable的謂詞?所以當謂詞返回的Observable發出事件filter()
決定是否應該丟棄來自原始源的事件。從RxJS過濾器()謂詞返回Observable
RxJS中是否有一個運算符與filter()
一樣工作,但接受允許返回Observable的謂詞?所以當謂詞返回的Observable發出事件filter()
決定是否應該丟棄來自原始源的事件。從RxJS過濾器()謂詞返回Observable
如果我正確理解你,我會做這樣的:
const Observable = Rx.Observable;
const Subject = Rx.Subject;
let subject = new Subject();
source = Observable.from([1,2,3,4])
.flatMap(val => subject
.withLatestFrom(Observable.of(val), (_, val) => val)
.filter(val => val % 2 == 0)
);
source.subscribe(val => console.log(val));
subject.next(null);
setTimeout(() => {
subject.next(null);
}, 1000);
我包裹着另一個可觀測和withLatestFrom
運營商發出只有當它的源發射的每個值。在我的情況下,來源是subject
,所以我可以完全控制它。然後有filter()
可以過濾任何你想要的。
雖然,我不知道是否有任何簡單的解決方案...
這版畫只有兩個值和1後,另外兩個是因爲我叫subject.next(null);
的setTimeout
回調中:
2
4
2
4
謝謝!我可以確認演示程序的行爲與我的預期相同,但代碼對於這種情況確實看起來有點過分。我會盡量在接下來的幾個小時內將其應用到我記憶中的實際用例中,然後我會回過頭來讓您知道結果。 –