操作符是函数,它基于当前的 Observable 创建一个新的 Observable。这是一个无副作用的操作:前面的 Observable 保持不变。
操作符本质上是一个纯函数 (pure function),它接收一个 Observable 作为输入,并生成一个新的 Observable 作为输出。
看个例子:
ngOnInit(): void {
// input has type observable
function multiplyByTen(input) {
return new Observable(function subscribe22anyname(observer) {
input.subscribe({
next: (v) => observer.next(10 * v),
error: (err) => observer.error(err),
complete: () => observer.complete()
});
});
}
const inpute = from([1, 2, 3, 4]);
const output = multiplyByTen(inpute);
output.subscribe(x => console.log(x));
}
调用我自定义的Operator multiplyByTen, 返回一个新的Observable实例:
在Observable的构造函数里,将应用程序传入的subscribe方法传入并维护到_subscribe方法里:
sink.add方法里调用应用程序编写的回调:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":