原文出处: Angular7入门辅助教程(五)——Observable(可观察对象)
方法一:
import { of } from 'rxjs/observable/of';
...
private doTest() {
//创建Observable对象
let observable = of(1, 2, 3);
//调用方法1:
observable.subscribe({ next: num => console.log(num) });
//调用方法2:
observable.subscribe(num => { console.log(num) });
}
调用方法1 和 调用方法2 结果一样如下:
方法二:
import { Observable } from 'rxjs';
...
private doTest() {
//创建Observable对象
const observable = Observable.create(observer => {
try {
observer.next(1);
observer.next(2);
observer.next("x");
} catch (e) {
observer.error(e);
}
observer.complete();
});
// 调用方法1:
const observer = {
next: num => console.log(num),
error: e => console.log(e),
complete: () => console.log('complete!!!')
}
observable.subscribe(observer);
// 调用方法2:
observable.subscribe(res => {
console.log(res);
});
}
调用方法1 结果如下:
|
调用方法2 结果如下:
实现方法总结:
1、创建一个Observable(可观察对象),它会将参数一个一个的发送给订阅的observer;
2、创建一个observer(观察者),它包含三个属性:next,error,complete均为函数,对Observable发来的参数进行接收并处理;
3、Observable调用subscribe方法告知observer对Obsverable的消息进行了订阅,并返回一个subscription对象(可以随时用unsubscribe()取消订阅);