rxjs takeuntil,检查可观测源是否有效

rxjs takeuntil,检查可观测源是否有效,rxjs,Rxjs,搜索了几个小时后。。。大多数例子都是这样的 var source = Rx.Observable.timer(0, 1000) .takeUntil(Rx.Observable.timer(5000)); var subscription = source.subscribe( function (x) { console.log('Next: ' + x); }, function (err) { console.log('Error: ' + err); },

搜索了几个小时后。。。大多数例子都是这样的

var source = Rx.Observable.timer(0, 1000)
    .takeUntil(Rx.Observable.timer(5000));

var subscription = source.subscribe(
    function (x) { console.log('Next: ' + x); },
    function (err) { console.log('Error: ' + err); },
    function () { console.log('Completed'); })
结果

Next: 0
Next: 1
Next: 2
Next: 3
Next: 4
Completed
但是,我想知道是否有可能从源值而不是另一个可观察的物体上检查。。像这样的

var source = Rx.Observable.timer(0, 1000)
    .takeUntil((result) => result == 5);

我想你要找的是

var-source=Rx.Observable.timer(0,1000)
.takeWhile((结果)=>结果<5);
source.subscribe(
(val)=>console.log(val),
(err)=>console.log(err),
()=>console.log('complete')
);

hi,如果我想知道其他外部值是否有效,我该怎么做?我想你可以把它放在
(result)=>result<5&&otherValue
中,但这是功能性的。正确的方法应该是类似Observable.CombineTest(otherValue的Observable.of),Rx.Observable.timer(0,1000)).takeWhile(([result1,result2])=>DosomethingWitterSulst);
var source = Rx.Observable.timer(0, 1000)
    .takeWhile((result) => result < 5);

source.subscribe(
    (val) => console.log(val),
    (err) => console.log(err),
    () => console.log('complete')
);