observer观察者
什么是观察者?观察者是可观察对象所发送数据的消费者,观察者简单而言是一组回调函数 , 分别对应一种被可观察对象发送的通知的类型:next, error和complete。下面是一个典型的观察者对象的例子:
var 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.subscribe(observer)
观察者不过是三个回调函数组成的对象,每个回调函数分别对应可观察对象的通知类型。
RxJS中的观察者是可选的,如果你不提供某个回调函数,可观察对象的执行仍然会照常发生,当然某个类型的通知将不会发生,因为在观察者对象中没有对应于他们的回调函数。
下面的例子中是一个没有complete回调的观察者对象:
var observer={
next:x=>console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
}
当订阅一个可观察对象,你可能仅仅提供回调来作为参数就够了,并不需要完整的观察者对象,作为示例:
observable.subscribe(x => console.log('Observer got a next value: ' + x));
在observable.subscribe内部,它将使用第一个回调参数作为next的处理句柄创建一个观察者对象。也可以通过将三个函数作为参数提供三种回调:
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')
);