Skip to main content
Module

x/rxjs/mod.ts>iif

Deno port of RXJS
Latest
function iif
import { iif } from "https://deno.land/x/rxjs@v1.0.2/mod.ts";

Checks a boolean at subscription time, and chooses between one of two observable sources

iif expects a function that returns a boolean (the condition function), and two sources, the trueResult and the falseResult, and returns an Observable.

At the moment of subscription, the condition function is called. If the result is true, the subscription will be to the source passed as the trueResult, otherwise, the subscription will be to the source passed as the falseResult.

If you need to check more than two options to choose between more than one observable, have a look at the defer creation method.

Examples

Change at runtime which Observable will be subscribed

import { iif, of } from 'rxjs';

let subscribeToFirst;
const firstOrSecond = iif(
  () => subscribeToFirst,
  of('first'),
  of('second')
);

subscribeToFirst = true;
firstOrSecond.subscribe(value => console.log(value));

// Logs:
// 'first'

subscribeToFirst = false;
firstOrSecond.subscribe(value => console.log(value));

// Logs:
// 'second'

Control access to an Observable

import { iif, of, EMPTY } from 'rxjs';

let accessGranted;
const observableIfYouHaveAccess = iif(
  () => accessGranted,
  of('It seems you have an access...'),
  EMPTY
);

accessGranted = true;
observableIfYouHaveAccess.subscribe({
  next: value => console.log(value),
  complete: () => console.log('The end')
});

// Logs:
// 'It seems you have an access...'
// 'The end'

accessGranted = false;
observableIfYouHaveAccess.subscribe({
  next: value => console.log(value),
  complete: () => console.log('The end')
});

// Logs:
// 'The end'

Parameters

condition: () => boolean

Condition which Observable should be chosen.

trueResult: ObservableInput<T>

An Observable that will be subscribed if condition is true.

falseResult: ObservableInput<F>

An Observable that will be subscribed if condition is false.

Returns

An observable that proxies to trueResult or falseResult, depending on the result of the condition function.