Skip to main content

createSignal

A function to create a new Signal

Call Signature

function createSignal<T>(options?): Signal<T>;

A function to create a new Signal

Type Parameters

Type ParameterDefault type
Tundefined

Parameters

ParameterTypeDescription
options?GenericSignalOptionsSee SignalOptions

Returns

Signal<T>

Example

const defaultSignal = createSignal<number>();

// Behavior Signal, always emitted with the latest value when added
const behaviorSignal = createSignal<number>({variant: 'behavior'});

// Replay Signal, replay the last values when added according to `bufferSize`
const replaySignal = createSignal<number>({variant: 'replay'});

// Batched Signal
const scheduler = ...; // e.g. `(task) => setTimeout(task, 1000)`
const signal = createSignal<number>({
variant: 'batched',
schedule: scheduler.schedule,
emitImmediatelyWhenFull: true, // If you don't want to lose the data
bufferSize: 10, // Buffer upto 10 subjects
});

Call Signature

function createSignal<T>(options): Signal<T>;

A function to create a new Signal

Type Parameters

Type ParameterDefault type
Tundefined

Parameters

ParameterTypeDescription
optionsReplaySignalOptionsSee SignalOptions

Returns

Signal<T>

Example

const defaultSignal = createSignal<number>();

// Behavior Signal, always emitted with the latest value when added
const behaviorSignal = createSignal<number>({variant: 'behavior'});

// Replay Signal, replay the last values when added according to `bufferSize`
const replaySignal = createSignal<number>({variant: 'replay'});

// Batched Signal
const scheduler = ...; // e.g. `(task) => setTimeout(task, 1000)`
const signal = createSignal<number>({
variant: 'batched',
schedule: scheduler.schedule,
emitImmediatelyWhenFull: true, // If you don't want to lose the data
bufferSize: 10, // Buffer upto 10 subjects
});

Call Signature

function createSignal<T>(options): Signal<T>;

A function to create a new Signal

Type Parameters

Type ParameterDefault type
Tundefined

Parameters

ParameterTypeDescription
optionsBehaviorSignalOptionsSee SignalOptions

Returns

Signal<T>

Example

const defaultSignal = createSignal<number>();

// Behavior Signal, always emitted with the latest value when added
const behaviorSignal = createSignal<number>({variant: 'behavior'});

// Replay Signal, replay the last values when added according to `bufferSize`
const replaySignal = createSignal<number>({variant: 'replay'});

// Batched Signal
const scheduler = ...; // e.g. `(task) => setTimeout(task, 1000)`
const signal = createSignal<number>({
variant: 'batched',
schedule: scheduler.schedule,
emitImmediatelyWhenFull: true, // If you don't want to lose the data
bufferSize: 10, // Buffer upto 10 subjects
});

Call Signature

function createSignal<T>(options): Signal<T, T[]>;

A function to create a new Signal

Type Parameters

Type ParameterDefault type
Tundefined

Parameters

ParameterTypeDescription
optionsBatchedSignalOptionsSee SignalOptions

Returns

Signal<T, T[]>

Example

const defaultSignal = createSignal<number>();

// Behavior Signal, always emitted with the latest value when added
const behaviorSignal = createSignal<number>({variant: 'behavior'});

// Replay Signal, replay the last values when added according to `bufferSize`
const replaySignal = createSignal<number>({variant: 'replay'});

// Batched Signal
const scheduler = ...; // e.g. `(task) => setTimeout(task, 1000)`
const signal = createSignal<number>({
variant: 'batched',
schedule: scheduler.schedule,
emitImmediatelyWhenFull: true, // If you don't want to lose the data
bufferSize: 10, // Buffer upto 10 subjects
});

Call Signature

function createSignal<T>(options): Signal<T, T>;

A function to create a new Signal

Type Parameters

Type ParameterDefault type
Tundefined

Parameters

ParameterTypeDescription
optionsSignalOptionsSee SignalOptions

Returns

Signal<T, T>

Example

const defaultSignal = createSignal<number>();

// Behavior Signal, always emitted with the latest value when added
const behaviorSignal = createSignal<number>({variant: 'behavior'});

// Replay Signal, replay the last values when added according to `bufferSize`
const replaySignal = createSignal<number>({variant: 'replay'});

// Batched Signal
const scheduler = ...; // e.g. `(task) => setTimeout(task, 1000)`
const signal = createSignal<number>({
variant: 'batched',
schedule: scheduler.schedule,
emitImmediatelyWhenFull: true, // If you don't want to lose the data
bufferSize: 10, // Buffer upto 10 subjects
});