....
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;
}
答案 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