Scheduler

An execution context and a data structure to order tasks and schedule their execution. Provides a notion of (potentially virtual) time, through the now() getter method.

Deprecation Notes

Scheduler is an internal implementation detail of RxJS, and should not be used directly. Rather, create your own class and implement SchedulerLike

class Scheduler implements SchedulerLike { static now: () => number constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) now: () => number schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription }

Description

Each unit of work in a Scheduler is called an Action.

class Scheduler { now(): number; schedule(work, delay?, state?): Subscription; }

Static Properties

PropertyTypeDescription
now

Note: the extra arrow function wrapper is to make testing by overriding Date.now easier.

Constructor

constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now)

Parameters

SchedulerAction

Type: typeof Action.

now

Optional. Default is Scheduler.now.

Type: () => number.

Properties

PropertyTypeDescription
now

A getter method that returns a number representing the current time (at the time this function was called) according to the scheduler's own internal clock.

Methods

schedule()

Schedules a function, work, for execution. May happen at some point in the future, according to the delay parameter, if specified. May be passed some context object, state, which will be passed to the work function.

schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription

Parameters

work

A function representing a task, or some unit of work to be executed by the Scheduler.

delay

Optional. Default is 0.

Time to wait before executing the work, where the time unit is implicit and defined by the Scheduler itself.

state

Optional. Default is undefined.

Some contextual data that the work function uses when called by the Scheduler.

Returns

Subscription: A subscription in order to be able to unsubscribe the scheduled work.

The given arguments will be processed an stored as an Action object in a queue of actions.