2016-04-14 10 views
0

Gibt es einen Unterschied zwischenUnterschied, wie das Versprechen für den Zugriff auf

var source1 = Rx.Observable.of(42); 
const oneSubscription = source1.subscribe({ 
    next: x => console.log(x) 
}); 
oneSubscription.unsubscribe(); 

und

var source2 = Rx.Observable.of(42); 
source2.forEach(x => console.log(x)); 

Ich dachte, dass ein Versprechen Sie es zuerst zeichnen haben zu erstellen.

Aber im Fall von source2 funktioniert das Ding nur ohne zu abonnieren.

Kann jemand jemand erklären.

Antwort

2

Das ist, weil forEach intern auch abonniert.

/** 
* Subscribes an o to the observable sequence. 
* @param {Mixed} [oOrOnNext] The object that is to receive notifications or an action to invoke for each element in the observable sequence. 
* @param {Function} [onError] Action to invoke upon exceptional termination of the observable sequence. 
* @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. 
* @returns {Diposable} A disposable handling the subscriptions and unsubscriptions. 
*/ 
forEach(observer: IObserver<T>): IDisposable; 
+0

Wie würden Sie 'next',' error', 'complete' in' forEach' zugreifen? – sreginogemoh

+0

Sie können weitere Funktionen hinzufügen, wie in 'subscribe', siehe http://xgrommx.github.io/rx-book/content/observable/observable_instance_methods/subscribe.html –

+0

@sreginogemoh Hatte Ihnen diese Antwort geholfen? –

Verwandte Themen