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