javascripttypescriptrxjsrxjs5reactive-extensions-js

RxJS Interval without delay


The following code emits an int after 5000ms and then another in every 5000ms later:

let evens = Observable.interval(5000)
     .map(i => {
          return i * 2;
      });

 evens.subscribe((i) => {
      console.log(i);
 });

Is it possible to do this, but have the first result immediately (0ms), and then wait 5000ms between subsequent results?


Solution

  • You can use timer() where the first parameter is the initial delay:

    timer(0, 5000);
    

    Or if you want the first item to be emitted immediately you can also use the startWith() operator.

    Jan 2019: Updated for RxJS 6