• defaultIfEmpty
    • 签名: defaultIfEmpty(defaultValue: any): Observable
  • 如果在完成前没有发出任何通知,那么发出给定的值
    • 示例
      • 示例 1: 没有值的 Observable.of 的默认值
      • 示例 2: Observable.empty 的默认值
  • 其他资源

    defaultIfEmpty

    签名: defaultIfEmpty(defaultValue: any): Observable

    如果在完成前没有发出任何通知,那么发出给定的值

    defaultIfEmpty - 图1

    示例

    示例 1: 没有值的 Observable.of 的默认值

    ( jsBin |
    jsFiddle )

    1. import { defaultIfEmpty } from 'rxjs/operators';
    2. import { of } from 'rxjs/observable/of';
    3. const empty = of();
    4. // 当源 observable 为空时,发出 'Observable.of() Empty!',否则发出源的任意值
    5. const exampleOne = empty.pipe(defaultIfEmpty('Observable.of() Empty!'));
    6. // 输出: 'Observable.of() Empty!'
    7. const subscribe = exampleOne.subscribe(val => console.log(val));
    示例 2: Observable.empty 的默认值

    ( jsBin |
    jsFiddle )

    1. import { defaultIfEmpty } from 'rxjs/operators';
    2. import { empty } from 'rxjs/observable/empty';
    3. // 空的 observable
    4. const empty = empty();
    5. // 当源 observable 为空时,发出 'Observable.empty()!',否则发出源的任意值
    6. const example = empty.pipe(defaultIfEmpty('Observable.empty()!'));
    7. // 输出: 'Observable.empty()!'
    8. const subscribe = example.subscribe(val => console.log(val));

    其他资源

    • defaultIfEmpty :newspaper: - 官方文档

    :file_folder: 源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/defaultIfEmpty.ts