0

違いはありますか

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

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

プロミスを作成するには、最初にサブスクライブする必要があると思いました。

ただし、source2サブスクライブせずに機能しているだけの場合。

誰かが説明できるかもしれません。

4

1 に答える 1

2

これは、forEach内部的にもサブスクライブするためです。

/**
*  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;
于 2016-04-14T08:16:56.237 に答える