Observer

141 阅读1分钟

Observer

什么是观察者? Observer 是 Observable 传递的值的消费者。 Observers 只是一组回调,针对 Observable 传递的每种类型的通知:next、error 和 complete。下面是一个典型的 Observer 对象的例子:


const observer = {

next: x => console.log('Observer got a next value: ' + x),

error: err => console.error('Observer got an error: ' + err),

complete: () => console.log('Observer got a complete notification'),

};

要使用观察者,请将其提供给 Observable 的订阅:


observable.subscribe(observer);

Observers 只是具有三个回调的对象,一个用于 Observable 可能传递的每种类型的通知。

RxJS 中的观察者也可能是部分的。如果不提供其中一个回调,Observable 的执行仍然会正常进行,除了某些类型的通知将被忽略,因为它们在 Observer 中没有相应的回调。

下面的例子是一个没有完整回调的观察者:


const observer = {

next: x => console.log('Observer got a next value: ' + x),

error: err => console.error('Observer got an error: ' + err),

};

当订阅一个 Observable 时,你也可以只提供 next 回调作为参数,而不附加到 Observer 对象,例如像这样:


observable.subscribe(x => console.log('Observer got a next value: ' + x));

在 observable.subscribe 内部,它将使用回调参数作为下一个处理程序创建一个 Observer 对象。