- Rxjs是Angular http请求所避开不了的一个主题。
- Angular http请求,返回Observable对象,然后在业务逻辑中subscirbe获取返回值。具体的用法,可以参考Angular8 HttpClient 30分钟深入了解下。
- 本文目的在于,针对Rxjs的所有的内容,进行一次自我理解升华。
- rxjs入门内容,请移步前端Rollup+RxJs响应式编程实践
下面进入总结主题:
Observable是什么?
- 通俗解释,形如发布订阅模式
- 目的在于解耦代码,便于angular业务逻辑之间异步传递值,此时类似promise
- 简单例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36const locations = new Observable((observer) => {
let watchId: number;
// Simple geolocation API check provides values to publish
if ('geolocation' in navigator) {
watchId = navigator.geolocation.watchPosition((position: Position) => {
observer.next(position);
}, (error: PositionError) => {
observer.error(error);
});
} else {
observer.error('Geolocation not available');
}
// When the consumer unsubscribes, clean up data ready for next subscription.
return {
unsubscribe() {
navigator.geolocation.clearWatch(watchId);
}
};
});
// Call subscribe() to start listening for updates.
const locationsSubscription = locations.subscribe({
next(position) {
console.log('Current Position: ', position);
},
error(msg) {
console.log('Error Getting Location: ', msg);
}
});
// Stop listening for location after 10 seconds
setTimeout(() => {
locationsSubscription.unsubscribe();
}, 10000);
Rxjs 核心概念
Observable
operators
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏