📅  最后修改于: 2023-12-03 15:34:47.078000             🧑  作者: Mango
RxJS 是 JavaScript 的一个库,它通过使用可观察的序列来编写异步和基于事件的程序,同时提供对处理异步代码的丰富的查询操作。
在 RxJS 中,观察者会订阅一个可观察的序列,当可观察序列发出下一个值时,观察者就会接收到这个值。这也是 RxJS 最重要的设计理念之一,它被称为订阅。本文将深入介绍 RxJS 中的订阅。
在 RxJS 中,我们可以使用 Observable
工厂函数创建可观察对象,示例如下:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
subscriber.complete();
})
以上代码创建了一个可观察对象,它会依次发出值 1
、2
、3
,然后完成发出。
接下来,我们需要订阅该可观察对象以接收它的值。我们通过调用 subscribe()
方法来实现订阅,该方法接受一个 Observer
对象作为参数,Observer
对象包含了处理发射值的方法。以下是一个示例:
observable.subscribe({
next: value => console.log(value),
complete: () => console.log('complete!')
})
以上代码输出以下内容:
1
2
3
complete!
在 RxJS 中,如果我们不再需要接收一个可观察对象的值,应该取消订阅它。有两种方法可以取消订阅:
unsubscribe()
方法unsubscribe()
方法示例代码:
const subscription = observable.subscribe({
next: value => console.log(value),
complete: () => console.log('complete!')
})
subscription.unsubscribe();
// 或者
// observable.subscribe().unsubscribe()
以上代码输出以下内容:
1
2
3
在此之后,我们取消了对可观察对象的订阅,因此不会再次看到 complete!
。
在本文中,我们讨论了 RxJS 中的订阅,以及如何创建可观察对象、订阅它们并解除订阅它们。RxJS 中的订阅是编写异步代码的核心,并且理解订阅是使用 RxJS 的基本前提。