Observable.Create方法中的参数

时间:2017-10-26 16:34:56

标签: angular observable

 ....
var observable = Observable.create(source  => {
      console.log(source);
      source.next(Math.random());
    });

有人可以向我解释为什么我会得到以下内容?

Subscriber {closed: false, _parent: null, _parents: null, _subscriptions: null, syncErrorValue: null, …}

source?它应该是观察者不是吗?

interface Observer<T> {
  closed?: boolean;
  next: (value: T) => void;
  error: (err: any) => void;
  complete: () => void;
}

1 个答案:

答案 0 :(得分:0)

Observer只是一个接口,Subscriber就是它的实现。

来自Subscriber类的文档:

  

实现Observer接口并扩展Subscription类。虽然Observer是用于使用Observable值的公共API,但是所有Observers都会转换为Subscriber,以便提供类似Subscription的功能,例如取消订阅。订阅者是RxJS中的常见类型,对于实现运算符至关重要,但它很少用作公共API。

http://reactivex.io/rxjs/class/es6/Subscriber.js~Subscriber.html

http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObserverDoc.html