RxJS subscribeOn

2020-10-13 10:14 更新

異步地在指定上將 Observable 訂閱此 Observable SchedulerLike。

subscribeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T>

參量

調(diào)度器 SchedulerLike上執(zhí)行訂閱操作。
延遲 可選的。默認(rèn)值為0。類型:number。

returns

MonoTypeOperatorFunction<T>:對源 Observable 進行了修改,使其訂閱發(fā)生在指定的SchedulerLike。。

描述

subscribeOn您可以使用它來確定特定 Observable 訂閱時將使用哪種調(diào)度程序。

調(diào)度程序控制可觀察流向觀察者的發(fā)射速度和順序。

大理石圖

給出以下代碼:

import { of, merge } from 'rxjs';


const a = of(1, 2, 3, 4);
const b = of(5, 6, 7, 8, 9);
merge(a, b).subscribe(console.log);

一旦被觀察到a,這兩個 Observable b 都會直接并同步地發(fā)出它們的值。這將導(dǎo)致輸出1 2 3 4 5 6 7 8 9。

但是,如果改為使用subscribeOn運算符,則聲明要使用async發(fā)出的值a

import { of, merge, asyncScheduler } from 'rxjs';
import { subscribeOn } from 'rxjs/operators';


const a = of(1, 2, 3, 4).pipe(subscribeOn(asyncScheduler));
const b = of(5, 6, 7, 8, 9);
merge(a, b).subscribe(console.log);

輸出將改為5 6 7 8 9 1 2 3 4。這是因為 Observable b 像以前一樣直接且同步地發(fā)出其值,但從a該事件發(fā)出的消息已安排在事件循環(huán)

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號