Rxjs可观察与观察者的“语义”

时间:2018-09-15 15:17:39

标签: angular rxjs observable observers

由于几个星期以来,我经常使用Observables,因此在工具箱中拥有它确实是我的荣幸。

但是,我似乎无法理解以下结构(只是一个理论示例)所说明的语义/术语:

const o = Observable.create((observer: Observer<boolean>) => {
 observer.next(true);
 observer.error(false);
});

我知道您需要将参数传递给匿名函数以使其实现,但是为什么将其称为Observer类型的Observer以及为什么要在此观察者上调用next()和error()?在我看来,是可观察的对象发出值并将其推向观察者。上面的构造似乎可以解决这个问题。

基本上,具有以下代码是否更合乎逻辑:

const o = Observable.create(() => {
 this.next(true);
 this.error(false);
});

或更清楚地是:

const o = Observable.create(next: () => {... return true;}, error: () => { return false;});

也许是一个非常新手的问题,但我很想获得一些见识。

谢谢!

1 个答案:

答案 0 :(得分:1)

Observable-Observer 模式是一种 Push 机制,意味着通知Observer是Observable的任务。 Observable需要引用Observer来通知它有关新的发射。诸如 onNext onError 之类的可观察回调是Observable-Observer之间的桥梁,因此此类回调存在于Observer中,Observable会调用它们。