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?"