Skip to content Skip to sidebar Skip to footer

How To Get Rxjs Observable Events In Zero Time?

I'm collecting all the events of an Observable to a data array: Is it possible to 'foresee the future' and get the same data array without waiting 2 seconds? To clarify, I'm tryin

Solution 1:

You can create an instance of the VirtualTimeScheduler and can specify it in the call to interval.

If you then call flush on the scheduler after subscribing, the events will be emitted immediately:

const scheduler = newRx.VirtualTimeScheduler();

const obs$ = Rx.Observable
  .interval(500, scheduler)
  .take(4);

let data = [];
const start = scheduler.now();

obs$.subscribe(
  value => {
    data.push({
      time: scheduler.now() - start,
      data: value
    });
  },
  () => {},
  () => {
    console.log(JSON.stringify(data, null, 2));
  }
);

scheduler.flush();
.as-console-wrapper { max-height: 100%!important; top: 0; }
<scriptsrc="https://unpkg.com/rxjs@5.2.0/bundles/Rx.js"></script>

Post a Comment for "How To Get Rxjs Observable Events In Zero Time?"