delayWhen

signature: delayWhen(selector: Function, sequence: Observable): Observable

Delay emitted values determined by provided function.

delayWhen - 图1

Examples

Example 1: Delay based on observable

( jsBin |
jsFiddle )

  1. import { interval } 'rxjs/observable/interval';
  2. import { timer } 'rxjs/observable/timer';
  3. import { delayWhen } from 'rxjs/operators';
  4. //emit value every second
  5. const message = interval(1000);
  6. //emit value after five seconds
  7. const delayForFiveSeconds = () => timer(5000);
  8. //after 5 seconds, start emitting delayed interval values
  9. const delayWhenExample = message.pipe(delayWhen(delayForFiveSeconds));
  10. //log values, delayed for 5 seconds
  11. //ex. output: 5s....1...2...3
  12. const subscribe = delayWhenExample.subscribe(val => console.log(val));

Additional Resources


:file_folder: Source Code:
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/delayWhen.ts