Rxjs提供了响应式编程的机制,其处理数据流和事件是非常擅长的。其工作的原理是基于发布/订阅模式的。下面我们以示例来看其工作的机制。
1、首先我们用create方法创建一个Observable:
const observable1 = Rx.Observable.create((observer) => {
//调用next实际上是在执行subscribe方法传递的next方法。
observer.next('test1');
});
其参数为一个方法,observer是一个对象,结构为:
{
next: (data) => {},
error: (error) => {},
complete: () => {},
}
其中next,error,complete是我们在调用subscribe时传递的,接下来会介绍。
当create方法执行后,其实是将这个方法参数保存在内部属性_subscribe中。
2、接下来我们调用subscribe方法,
observable1.subscribe(data => console.log(data));
该方法同样也可以传递一个object,或者三个方法,分别为next、complete和error。
当该方法被调用时,就会执行保存在_subscribe中的方法并将这三个回调方法作为参数。_subscribe也就是在调用create时传递的参数。