如何创建一个每隔几秒发送一次onNext事件的Observable说X,然后在Y秒后onCompleted

时间:2015-09-02 22:49:40

标签: system.reactive rxjs

如何创建一个Observable,它每隔几秒发送一次onNext事件,然后在Y秒后发送X然后onCompleted。也可能是onError。

2 个答案:

答案 0 :(得分:0)

您只能发送一次onCompleted,然后您的流基本结束。 onError

也是如此

答案 1 :(得分:0)

    function everyXuntilY(x, y, bError) {
        var afterY = bError?  Rx.Observable.throw() : Rx.Observable.empty();
        return Rx.Observable.just(afterY).delay(y)
                .startWith(Rx.Observable.interval(x))
                .switch();
    }

    everyXuntilY(500,4400, false).subscribe(
        function (x) {
            console.log('Next: ', x);
        },
        function (err) {
            console.log('Error: ', err);
        },
        function () {
            console.log('Completed');
        }
    );
  

然后在Y秒后完成。也可能是onError。

遵守可观察合同的任何Observable都可以 onComplete onError ,但不能同时