Skip to main content

anyWithNotifications

Alternative: anyN

Types

function anyWithNotifications<GObservables extends IGenericAnyInObservables>(
observables: GObservables,
): IObservable<IAnyObservableNotifications<GObservables>>

Definition

Waits for the first observable to send a complete Notification, or all observables sending an error Notification.

If it received a complete Notification, it will emit the last value received through the next Notifications of this observable, followed by a complete Notification.

If it received only error Notifications, it will send an error Notification (whose value is an AggregateError).

This is equivalent of Promise.any.

Diagrams

If one completes

If one errored

Examples

Example 1

const observable0$ = switchMap$$(timeout(1000), () => singleN<'a1'>('a1'));
const observable1$ = switchMap$$(timeout(500), () => throwError(new Error(`Failed`)));

const subscribe = anyWithNotifications([observable0$, observable1$]);

subscribe((value: IDefaultNotificationsUnion<'a1'>) => {
console.log(value);
});

Output:

// t = 1000ms
'next', 'a1'
'complete', undefined

Example 2

const observable0$ = switchMap$$(timeout(1000), () => throwError(new Error(`Failed A`)));
const observable1$ = switchMap$$(timeout(500), () => throwError(new Error(`Failed B`)));

const subscribe = anyWithNotifications([observable0$, observable1$]);

subscribe((value: IDefaultNotificationsUnion<any>) => {
console.log(value);
});

Output:

// t = 1000ms
'error', AggregateError