表示在任何时间量内的任何一组值。这是 RxJS 的最基本构建块。
class Observable<T> implements Subscribable {
static create: Function
static if: typeof iif
static throw: typeof throwError
constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic)
_isScalar: boolean
source: Observable<any>
operator: Operator<any, T>
lift<R>(operator: Operator<T, R>): Observable<R>
subscribe(observerOrNext?: NextObserver<T> | ErrorObserver<T> | CompletionObserver<T> | ((value: T) => void), error?: (error: any) => void, complete?: () => void): Subscription
_trySubscribe(sink: Subscriber<T>): TeardownLogic
forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void>
pipe(...operations: OperatorFunction<any, any>[]): Observable<any>
toPromise(promiseCtor?: PromiseConstructorLike): Promise<T>
}
子类
ConnectableObservable
GroupedObservable
Subject
BehaviorSubject
ReplaySubject
AsyncSubject
静态特性
| 属性 |
类型 |
描述 |
| 创造 |
Function |
通过调用 Observable 构造函数创建一个新的 Cold Observable |
| 如果 |
typeof iif |
|
| throw |
typeof throwError |
|
建设者
constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic)参量订阅可选的。默认值为 undefined。最初订阅 Observable 时调用的函数。该函数被赋予一个订阅者,可以为其输入新值 next,或者 error 可以调用一个方法来引发错误,或者 complete 可以调用一个方法 来通知成功完成。
物产
| 属性 |
类型 |
描述 |
| _isScalar |
boolean |
内部实现细节,请勿直接使用。 |
| 资源 |
Observable<any> |
|
| 算子 |
Operator<any, T> |
|
方法
电梯()
创建一个新的 Observable,将其作为源,并将传递的运算符定义为新的 Observable 的运算符。
lift<R>(operator: Operator<T, R>): Observable<R>
| 参量: |
类型: |
| 算子 |
定义要执行的操作的操作员 |
returnsObservable<R>:应用了运算符的新观测值 |
订阅()
调用 Observable 的执行并注册 Observer 处理程序以获取其发出的通知。
5重载...subscribe(observer?: PartialObserver<T>): Subscription
| 参量: |
类型: |
| 观察者 |
可选的。默认值为undefined。类型:PartialObserver |
returnsSubscription
subscribe(next: null, error: null, complete: () => void): Subscription
| 参量: |
类型: |
| 下一个 |
类型:null |
| 错误 |
类型:null |
| 完成 |
类型:() => void |
returnsSubscription``subscribe(next: null, error: (error: any) => void, complete?: () => void): Subscription
| 参量: |
类型: |
| 下一个 |
类型:null |
| 错误 |
类型:(error: any) => void |
| 完成 |
可选的。默认值为undefined。类型:() => void |
returns Subscription``subscribe(next: (value: T) => void, error: null, complete: () => void): Subscription
| 参量: |
类型: |
| 下一个 |
类型:(value: T) => void |
| 错误 |
类型:null |
| 完成 |
类型:() => void |
returnsSubscription``subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription
| 参量: |
类型: |
| 下一个 |
可选的。默认值为undefined。类型:(value: T) => void |
| 错误 |
可选的。默认值为undefined。类型:(error: any) => void |
| 完成 |
可选的。默认值为undefined。类型:() => void |
returns Subscription |
当您拥有所有这些 Observable 时,请使用它,但仍然没有任何反应。subscribe不是常规运算符,而是调用 Observable 内部 subscribe 函数的方法。例如,它可能是传递给 Observable 的构造函数的函数,但是在大多数情况下,它是库实现,它定义 Observable 将发出的内容以及何时发出。这意味着调用 subscribe 实际上是 Observable 开始其工作的时刻,而不是通常被认为是创建的时刻。除了开始执行 Observable 之外,此方法还允许您侦听 Observable 发出的值以及完成或发生错误的时间。您可以通过以下两种方式来实现。第一种方法是创建一个实现 Observer 接口的对象。它应该具有由该接口定义的方法,但是请注意,它应该只是一个常规的 JavaScript 对象,您可以按照自己想要的任何方式(ES6 类,经典函数构造函数,对象文字等)创建自己。特别是不要尝试使用任何 RxJS 实现细节来创建观察者-您不需要它们。还要记住,您的对象不必实现所有方法。如果发现自己创建了一种不执行任何操作的方法,则可以简单地忽略它。但是请注意,如果 error 未提供该方法,则所有错误都将保留。第二种方法是完全放弃 Observer 对象,仅提供回调函数代替其方法。这意味着您可以提供三个函数作为的参数 subscribe,其中第一个函数等效于 next 方法,第二个函数等效于方法,error 第三个函数等效于 complete 方法。与 Observer 一样,如果不需要监听某些内容,则可以省略函数,最好通过 undefined 或 null,因为 subscribe 可以通过将它们放在函数调用中的位置来识别它们。当涉及到 error 功能时,就像以前一样(如果未提供),将抛出 Observable 发出的错误。无论 subscribe 使用哪种调用方式,在两种情况下都将返回 Subscription 对象。该对象允许您对其进行调用unsubscribe,这将停止 Observable 所做的工作,并清除 Observable 使用的所有资源。请注意,取消订阅不会调用 complete 提供给 subscribe 函数的回调,该回调保留给来自 Observable 的常规完成信号。请记住,提供给的回调 subscribe 不能保证被异步调用。它是一个 Observable 本身,它决定何时调用这些函数。例如 of ,默认情况下会同步发出其所有值。始终检查文档以了解给定的 Observable 在订阅时的行为,以及是否可以使用修改其默认行为 scheduler。
例
订阅观察者
import { of } from 'rxjs';
const sumObserver = {
sum: 0,
next(value) {
console.log('Adding: ' + value);
this.sum = this.sum + value;
},
error() {
// We actually could just remove this method,
// since we do not really care about errors right now.
},
complete() {
console.log('Sum equals: ' + this.sum);
}
};
of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.
.subscribe(sumObserver);
// Logs:
// "Adding: 1"
// "Adding: 2"
// "Adding: 3"
// "Sum equals: 6"
订阅功能
import { of } from 'rxjs'
let sum = 0;
of(1, 2, 3).subscribe(
value => {
console.log('Adding: ' + value);
sum = sum + value;
},
undefined,
() => console.log('Sum equals: ' + sum)
);
// Logs:
// "Adding: 1"
// "Adding: 2"
// "Adding: 3"
// "Sum equals: 6"
取消订阅
import { interval } from 'rxjs';
const subscription = interval(1000).subscribe(
num => console.log(num),
undefined,
() => {
// Will not be called, even when cancelling subscription.
console.log('completed!');
}
);
setTimeout(() => {
subscription.unsubscribe();
console.log('unsubscribed!');
}, 2500);
// Logs:
// 0 after 1s
// 1 after 2s
// "unsubscribed!" after 2.5s
_trySubscribe() _trySubscribe(sink: Subscriber<T>): TeardownLogic
| 参量 |
类型 |
| sink |
Subscriber |
returnsTeardownLogic |
| forEach() |
forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void>参量下一个可观察对象发出的每个值的处理程序 PromiseCtor 可选的。默认值为 undefined。用于实例化 Promise 的构造函数 |
Promise<void>:一个承诺,可以解决可观察的完成,或者拒绝已处理的错误 |
| pipe() |
| 用于将功能运算符缝合在一起。 |
- |
11 overloads...pipe(): Observable<T>参量没有参数。 |
returns`Observable
`pipe<A>(op1: OperatorFunction<T, A>): Observable<A>
| 参量 |
类型 |
| op1 |
类型:OperatorFunctionreturns`Observable<A>``pipe<A, B>(op1: OperatorFunction<T, A> |
| op2 |
OperatorFunction<A, B>): Observable<B>` |
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunctionreturnsObservable|<B>``pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C> |
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunctionreturns`Observable |
<C>`pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): Observable<D>
| 参量 |
类型 |
| p1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunctionop4 |
| 类型: |
OperatorFunctionreturnsObservable|<D>``pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): Observable<E> |
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunction |
| op4 |
类型:OperatorFunction |
| op5 |
类型:OperatorFunctionreturns`Observable |
<E>`pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): Observable<F>
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunction |
| op4 |
类型:OperatorFunction |
| op5 |
类型:OperatorFunction |
| op6 |
类型:OperatorFunctionreturns`Observable |
<F>`pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): Observable<G>
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunction |
| op4 |
类型: |
OperatorFunction |
| op5 |
类型: |
OperatorFunction |
| op6 |
类型: |
OperatorFunction |
| op7 |
类型:OperatorFunctionreturns`Observable |
<G>`pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): Observable<H>
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunction |
| op4 |
类型:OperatorFunction |
| op5 |
类型:OperatorFunction |
| op6 |
类型:OperatorFunction |
| op7 |
类型:OperatorFunction |
| op8 |
类型:OperatorFunctionreturns`Observable |
<H>`pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): Observable<I>
| 参量 |
类型 |
| op1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunction |
| op4 |
类型:OperatorFunction |
| op5 |
类型:OperatorFunction |
| op6 |
类型:OperatorFunction |
| op7 |
类型:OperatorFunction |
| op8 |
类型:OperatorFunction |
| op9 |
类型:OperatorFunctionreturns`Observable |
<I>`pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>, ...operations: OperatorFunction<any, any>[]): Observable<{}>
| 参量 |
类型 |
| p1 |
类型:OperatorFunction |
| op2 |
类型:OperatorFunction |
| op3 |
类型:OperatorFunction |
| op4 |
类型:OperatorFunction |
| op5 |
类型:OperatorFunction |
| op6 |
类型:OperatorFunction |
| op7 |
类型:OperatorFunction |
| op8 |
类型:OperatorFunction |
| op9 |
类型:OperatorFunction |
| 运作 |
类型:OperatorFunction[]returnsObservable<{}> |
承诺() 3重载...toPromise<T>(): Promise<T>参量没有参数。returnsPromise<T>``toPromise<T>(PromiseCtor: any): Promise<T>
returnsPromise<T>``toPromise<T>(PromiseCtor: PromiseConstructorLike): Promise<T>
| 参量 |
类型 |
| 承诺者 |
类型:PromiseConstructorLike。returnsPromise<T> |