Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

subscribeOn

Asynchronously subscribes Observers to this Observable on the specified SchedulerLike.

With subscribeOn you can decide what type of scheduler a specific Observable will be using when it is subscribed to.

Schedulers control the speed and order of emissions to observers from an Observable stream.

Example

Given the following code:

import { of, merge } from 'rxjs';

const a = of(1, 2, 3);
const b = of(4, 5, 6);

merge(a, b).subscribe(console.log);

// Outputs
// 1
// 2
// 3
// 4
// 5
// 6

Both Observable a and b will emit their values directly and synchronously once they are subscribed to.

If we instead use the subscribeOn operator declaring that we want to use the asyncScheduler for values emitted by Observable a:

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

const a = of(1, 2, 3).pipe(subscribeOn(asyncScheduler));
const b = of(4, 5, 6);

merge(a, b).subscribe(console.log);

// Outputs
// 4
// 5
// 6
// 1
// 2
// 3

The reason for this is that Observable b emits its values directly and synchronously like before but the emissions from a are scheduled on the event loop because we are now using the asyncScheduler for that specific Observable.

function subscribeOn<T>(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction<T>;
§
subscribeOn<T>(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction<T>
[src]

§Type Parameters

§Parameters

§

The SchedulerLike to perform subscription actions on.

§
delay?: number optional
[src]

A delay to pass to the scheduler to delay subscriptions

§Return Type

§

A function that returns an Observable modified so that its subscriptions happen on the specified SchedulerLike.