W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
表示在任何時間量內(nèi)的任何一組值。這是 RxJS 的最基本構(gòu)建塊。
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
屬性 | 類型 | 描述 |
---|---|---|
創(chuàng)造 | Function |
通過調(diào)用 Observable 構(gòu)造函數(shù)創(chuàng)建一個新的 Cold Observable |
如果 | typeof iif |
|
throw | typeof throwError |
constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic)
參量訂閱可選的。默認值為 undefined
。最初訂閱 Observable 時調(diào)用的函數(shù)。該函數(shù)被賦予一個訂閱者,可以為其輸入新值 next
,或者 error
可以調(diào)用一個方法來引發(fā)錯誤,或者 complete
可以調(diào)用一個方法 來通知成功完成。
屬性 | 類型 | 描述 |
---|---|---|
_isScalar | boolean |
內(nèi)部實現(xiàn)細節(jié),請勿直接使用。 |
資源 | Observable<any> |
|
算子 | Operator<any, T> |
電梯()
創(chuàng)建一個新的 Observable,將其作為源,并將傳遞的運算符定義為新的 Observable 的運算符。
lift<R>(operator: Operator<T, R>): Observable<R>
參量: | 類型: |
---|---|
算子 | 定義要執(zhí)行的操作的操作員 |
returnsObservable<R> :應(yīng)用了運算符的新觀測值 |
訂閱()
調(diào)用 Observable 的執(zhí)行并注冊 Observer 處理程序以獲取其發(fā)出的通知。
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 |
當(dāng)您擁有所有這些 Observable 時,請使用它,但仍然沒有任何反應(yīng)。subscribe
不是常規(guī)運算符,而是調(diào)用 Observable 內(nèi)部 subscribe
函數(shù)的方法。例如,它可能是傳遞給 Observable 的構(gòu)造函數(shù)的函數(shù),但是在大多數(shù)情況下,它是庫實現(xiàn),它定義 Observable 將發(fā)出的內(nèi)容以及何時發(fā)出。這意味著調(diào)用 subscribe
實際上是 Observable 開始其工作的時刻,而不是通常被認為是創(chuàng)建的時刻。除了開始執(zhí)行 Observable 之外,此方法還允許您偵聽 Observable 發(fā)出的值以及完成或發(fā)生錯誤的時間。您可以通過以下兩種方式來實現(xiàn)。第一種方法是創(chuàng)建一個實現(xiàn) Observer
接口的對象。它應(yīng)該具有由該接口定義的方法,但是請注意,它應(yīng)該只是一個常規(guī)的 JavaScript 對象,您可以按照自己想要的任何方式(ES6 類,經(jīng)典函數(shù)構(gòu)造函數(shù),對象文字等)創(chuàng)建自己。特別是不要嘗試使用任何 RxJS 實現(xiàn)細節(jié)來創(chuàng)建觀察者-您不需要它們。還要記住,您的對象不必實現(xiàn)所有方法。如果發(fā)現(xiàn)自己創(chuàng)建了一種不執(zhí)行任何操作的方法,則可以簡單地忽略它。但是請注意,如果 error
未提供該方法,則所有錯誤都將保留。第二種方法是完全放棄 Observer 對象,僅提供回調(diào)函數(shù)代替其方法。這意味著您可以提供三個函數(shù)作為的參數(shù) subscribe
,其中第一個函數(shù)等效于 next
方法,第二個函數(shù)等效于方法,error
第三個函數(shù)等效于 complete
方法。與 Observer 一樣,如果不需要監(jiān)聽某些內(nèi)容,則可以省略函數(shù),最好通過 undefined
或 null
,因為 subscribe
可以通過將它們放在函數(shù)調(diào)用中的位置來識別它們。當(dāng)涉及到 error
功能時,就像以前一樣(如果未提供),將拋出 Observable 發(fā)出的錯誤。無論 subscribe
使用哪種調(diào)用方式,在兩種情況下都將返回 Subscription 對象。該對象允許您對其進行調(diào)用unsubscribe
,這將停止 Observable 所做的工作,并清除 Observable 使用的所有資源。請注意,取消訂閱不會調(diào)用 complete
提供給 subscribe
函數(shù)的回調(diào),該回調(diào)保留給來自 Observable 的常規(guī)完成信號。請記住,提供給的回調(diào) subscribe
不能保證被異步調(diào)用。它是一個 Observable 本身,它決定何時調(diào)用這些函數(shù)。例如 of
,默認情況下會同步發(fā)出其所有值。始終檢查文檔以了解給定的 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> 參量下一個可觀察對象發(fā)出的每個值的處理程序 PromiseCtor 可選的。默認值為 undefined 。用于實例化 Promise 的構(gòu)造函數(shù) |
Promise<void> :一個承諾,可以解決可觀察的完成,或者拒絕已處理的錯誤 |
pipe() | |
---|---|
用于將功能運算符縫合在一起。 | - |
11 overloads...pipe(): Observable<T> 參量沒有參數(shù)。 |
returns`Observable
`pipe<A>(op1: OperatorFunction<T, A>): Observable<A>
參量 | 類型 |
---|---|
op1 | 類型:OperatorFunction returns`Observable<A>``pipe<A, B>(op1: OperatorFunction<T, A> |
op2 | OperatorFunction<A, B>): Observable<B>` |
參量 | 類型 |
---|---|
op1 | 類型:OperatorFunction |
op2 | 類型:OperatorFunction returnsObservable|<B>``pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C> |
參量 | 類型 |
---|---|
op1 | 類型:OperatorFunction |
op2 | 類型:OperatorFunction |
op3 | 類型:OperatorFunction returns`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 | 類型:OperatorFunction op4 |
類型: | OperatorFunction returnsObservable|<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 | 類型:OperatorFunction returns`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 | 類型:OperatorFunction returns`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 | 類型:OperatorFunction returns`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 | 類型:OperatorFunction returns`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 | 類型:OperatorFunction returns`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>
參量沒有參數(shù)。returnsPromise<T>``toPromise<T>(PromiseCtor: any): Promise<T>
參量 | 類型 |
---|---|
承諾者 | 類型:any |
returnsPromise<T>``toPromise<T>(PromiseCtor: PromiseConstructorLike): Promise<T>
參量 | 類型 |
---|---|
承諾者 | 類型:PromiseConstructorLike 。returnsPromise<T> |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: