W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
創(chuàng)建一個(gè)輸出 Observable,該輸出依次從給定的 Observable 發(fā)出所有值,然后移至下一個(gè)。
concat<O extends ObservableInput<any>, R>(...observables: (SchedulerLike | O)[]): Observable<ObservedValueOf<O> | R>
可觀察的 | 類(lèi)型:`(SchedulerLike | O)[]`。 |
---|---|---|
Observable<ObservedValueOf<O> | R>
:每個(gè)傳遞的Observable的所有值都以串行方式按順序合并到單個(gè)Observable中。
通過(guò)依次發(fā)射它們的值將多個(gè)Observable串聯(lián)在一起,一個(gè)Observable接一個(gè)。
concat
通過(guò)一次訂閱多個(gè) Observable,并將其結(jié)果合并到輸出 Observable 中,將多個(gè) Observable 連接在一起。您可以傳遞一個(gè) Observable 數(shù)組,也可以將它們直接作為參數(shù)。傳遞空數(shù)組將導(dǎo)致 Observable 立即完成。
concat`將訂閱第一個(gè)輸入 Observable 并發(fā)出其所有值,而不會(huì)以任何方式更改或影響它們。當(dāng)該 Observable 完成時(shí),它將訂閱然后傳遞的下一個(gè) Observable,并再次發(fā)出其值。將重復(fù)此操作,直到操作員用完 Observable。當(dāng)最后一個(gè)輸入 Observable 完成時(shí), `concat`也將完成。在任何給定時(shí)刻,只有一個(gè)傳遞給運(yùn)算符的 Observable 會(huì)發(fā)出值。如果您希望同時(shí)從傳遞的 Observable 發(fā)出值,請(qǐng)[`merge`](https://rxjs.dev/api/index/function/merge)改為檢出 ,特別是使用可選`concurrent`參數(shù)時(shí)。實(shí)際上, 參數(shù)設(shè)置為`concat`等于`merge`運(yùn)算符。`concurrent``1
請(qǐng)注意,如果某些輸入的 Observable 永遠(yuǎn)不會(huì)完成,那么 concat
也將永遠(yuǎn)不會(huì)完成,而未完成的輸入之后的 Observables 也將不會(huì)被訂閱。另一方面,如果某個(gè) Observable 僅在訂閱后立即完成,則對(duì)于來(lái)說(shuō)將是不可見(jiàn)的 concat
,它將繼續(xù)前進(jìn)到下一個(gè) Observable。
如果任何可觀察的鏈錯(cuò)誤,而不是將控制權(quán)傳遞給下一個(gè)可觀察的鏈, concat
也會(huì)立即發(fā)生錯(cuò)誤。在發(fā)出錯(cuò)誤的事件之后將被訂閱的可觀察對(duì)象永遠(yuǎn)不會(huì)。
如果 concat
多次傳遞給同一 Observable,則其值的流將在每個(gè)訂閱上“重播”,這意味著您可以根據(jù)需要重復(fù)給定 Observable 多次。如果將相同的 Observable 傳遞 concat
1000 次變得乏味,則可以隨時(shí)使用 repeat
。
import { concat, interval, range } from 'rxjs';
import { take } from 'rxjs/operators';
const timer = interval(1000).pipe(take(4));
const sequence = range(1, 10);
const result = concat(timer, sequence);
result.subscribe(x => console.log(x));
// results in:
// 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10
import { concat, interval } from 'rxjs';
import { take } from 'rxjs/operators';
const timer1 = interval(1000).pipe(take(10));
const timer2 = interval(2000).pipe(take(6));
const timer3 = interval(500).pipe(take(10));
const result = concat(timer1, timer2, timer3);
result.subscribe(x => console.log(x));
// results in the following:
// (Prints to console sequentially)
// -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9
// -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5
// -500ms-> 0 -500ms-> 1 -500ms-> ... 9
import { concat, interval } from 'rxjs';
import { take } from 'rxjs/operators';
const timer = interval(1000).pipe(take(2));
concat(timer, timer) // concatenating the same Observable!
.subscribe(
value => console.log(value),
err => {},
() => console.log('...and it is done!')
);
// Logs:
// 0 after 1s
// 1 after 2s
// 0 after 3s
// 1 after 4s
// "...and it is done!" also after 4s
concat(v1: O1, scheduler: SchedulerLike): Observable<ObservedValueOf<O1>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
調(diào)度器 | 類(lèi)型:SchedulerLike |
returnsObservable<ObservedValueOf<O1>>
concat(v1: O1, v2: O2, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> ObservedValueOf<O2>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
調(diào)度器 | 類(lèi)型:SchedulerLike |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2>>
concat(v1: O1, v2: O2, v3: O3, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> ObservedValueOf<O2> | ObservedValueOf<O3>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
調(diào)度器 | 類(lèi)型:SchedulerLike |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3>>
concat(v1: O1, v2: O2, v3: O3, v4: O4, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
v4 | 類(lèi)型:O4 |
調(diào)度器 | 類(lèi)型:SchedulerLike |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4>>
concat(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
v4 | 類(lèi)型:O4 |
v5 | 類(lèi)型:O5 |
調(diào)度器 | 類(lèi)型:SchedulerLike |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5>>
concat(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, scheduler: SchedulerLike): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5> ObservedValueOf<O6>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
v4 | 類(lèi)型:O4 |
v5 | 類(lèi)型:O5 |
v6 | 類(lèi)型:O6 |
調(diào)度器 | 類(lèi)型:SchedulerLike |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5> ObservedValueOf<O6>>
concat(v1: O1): Observable<ObservedValueOf<O1>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
returnsObservable<ObservedValueOf<O1>>
concat(v1: O1, v2: O2): Observable<ObservedValueOf<O1> ObservedValueOf<O2>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2>>
concat(v1: O1, v2: O2, v3: O3): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3>>
concat(v1: O1, v2: O2, v3: O3, v4: O4): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
v4 | 類(lèi)型:O4 |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4>>
concat(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
v4 | 類(lèi)型:O4 |
v5 | 類(lèi)型:O5 |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5>>
concat(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5> ObservedValueOf<O6>>
參量: | 類(lèi)型: |
---|---|
v1 | 類(lèi)型:O1 |
v2 | 類(lèi)型:O2 |
v3 | 類(lèi)型:O3 |
v4 | 類(lèi)型:O4 |
v5 | 類(lèi)型:O5 |
v6 | 類(lèi)型:O6 |
returnsObservable<ObservedValueOf<O1> ObservedValueOf<O2> ObservedValueOf<O3> ObservedValueOf<O4> ObservedValueOf<O5> ObservedValueOf<O6>>
concat(...observables: O[]): Observable<ObservedValueOf<O>>
參量: | 類(lèi)型: |
---|---|
可觀察的 | 類(lèi)型:O[] |
returnsObservable<ObservedValueOf<O>>
concat(...observables: (SchedulerLike O)[]): Observable<ObservedValueOf<O>>
參量: | 類(lèi)型: |
---|---|
可觀察的 | 類(lèi)型:(SchedulerLike O)[] |
returnsObservable<ObservedValueOf<O>>
concat(...observables: any[]): Observable<R>
參量: | 類(lèi)型: |
---|---|
可觀察的 | 類(lèi)型:any[] |
returnsObservable<R>
concat(...observables: any[]): Observable<R>
參量: | 類(lèi)型: |
---|---|
可觀察的 | 類(lèi)型:any[] |
returnsObservable<R>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: