iif

判断决定订阅的 Observable 对象。

用法

iif<T = never, F = never>(
  condition: () => boolean,
  trueResult: SubscribableOrPromise<T> = EMPTY,
  falseResult: SubscribableOrPromise<F> = EMPTY
): Observable<T | F>

参数

参数说明
condition条件
trueResult可选,默认值: EMPTY。 类型: SubscribableOrPromise
falseResult可选,默认值: EMPTY。 类型: SubscribableOrPromise

返回

类型: Observable<T>

示例

简单示例

import { iif, of, interval } from 'rxjs';
import { mergeMap } from 'rxjs/operators';

const r$ = of('R');
const x$ = of('X');

interval(1000)
  .pipe(mergeMap(v => iif(() => v % 4 === 0, r$, x$)))
  .subscribe(console.log);
// 输出:
// R ... X ... X ... X ... R ... X ... X ... X ... R ...

源码

https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/iif.ts

在 GitHub 上编辑此页面 article.updatedAt Wed, Aug 11, 2021