VirtualTimeScheduler
- это планировщик, который не использует реальное время и позволяет вам использовать Observables и операторы, которые должны работать в реальном времени, создав упорядоченный список событий.Затем вы можете сбросить все события в очереди, и они будут обрабатываться одно за другим.
Например, когда вы используете delay
:
import { of, VirtualTimeScheduler } from 'rxjs';
import { delay } from 'rxjs/operators';
const scheduler = new VirtualTimeScheduler();
of(1).pipe(
delay(100000, scheduler),
).subscribe(console.log);
scheduler.flush();
Live демо: https://stackblitz.com/edit/rxjs-zcmxg1
Обратите внимание, что даже при использовании 100000
вы на самом деле не ждете 100 секунд и результат мгновенный.Вам, вероятно, никогда не понадобится использовать VirtualTimeScheduler
(или, по крайней мере, я никогда не видел ни одного варианта использования).
Тогда TestScheduler
расширяет VirtualTimeScheduler
только некоторыми дополнительными методами для работыс мраморными диаграммами.