RxJS beobachtbar ist nicht abgeschlossen, wenn ein Fehler Auftritt

Wenn ich eine beobachtbare, von Grund auf, und haben die Beobachter-Fehler, dann komplett fertig Teil der Abonnement-nie aufgerufen.

var observer = Rx.Observable.create(function(observer){
    observer.onError(new Error('no!'));
    observer.onCompleted();
})

observer.subscribe(
    function(x) { console.log('succeeded with ' + x ) },
    function(x) { console.log('errored with ' + x ) },
    function() { console.log('completed') }
)

Ausgabe:

errored with Error: no!

Ich würde erwarten, dass es:

errored with Error: no!
completed

Wenn ich den code zum aufrufen von onNext statt onError, die beobachtbaren ordnungsgemäß abgeschlossen:

var observer = Rx.Observable.create(function(observer){
    observer.onNext('Hi!');
    observer.onCompleted();
})

observer.subscribe(
    function(x) { console.log('succeeded with ' + x ) },
    function(x) { console.log('errored with ' + x ) },
    function() { console.log('completed') }
)

Ich bekomme die erwartete Ausgabe:

succeeded with Hi! 
completed

Warum wird es nicht beendet, wenn ein Fehler aufgetreten ist?

InformationsquelleAutor Oved D | 2015-11-18
Schreibe einen Kommentar