RxJS 观察者模式
2020-09-24 15:13 更新
什么是观察员?观察者是观察者传递的价值的消费者。观察者只是一组回调,一个用于由所述可观测的递送通知每种类型: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'),
};
要使用 Observer,请将其提供给 subscribe
Observable 的:
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 可能传递的每种通知类型。
在 RxJS 观察员也可以是局部的。如果您不提供任何一种回调,则 Observable 的执行将仍然正常进行,除了某些类型的通知将被忽略,因为它们在 Observer 中没有相应的回调。
下面的示例是一个没有 complete
回调的观察者:
const observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
};
订阅 Observable 时,您也可以只提供回调作为参数,而不必附加到 Observer 对象,例如:
observable.subscribe(x => console.log('Observer got a next value: ' + x));
在内部 observable.subscribe
,它将使用第一个回调参数作为 next
处理程序创建一个 Observer 对象。所有三种回调类型都可以作为参数提供:
observable.subscribe(
x => console.log('Observer got a next value: ' + x),
err => console.error('Observer got an error: ' + err),
() => console.log('Observer got a complete notification')
);
以上内容是否对您有帮助:
更多建议: