Уроки11. timer: отложенное значение
Уроки · 11
11. timer: отложенное значение
timer — отложенный пуск
timer(delay) — это RxJS-аналог setTimeout. Он ждёт указанное число миллисекунд, отправляет одно значение (число 0) и сразу завершает поток.
timer(20)
// ждёт 20 мс → next(0) → complete()
Виртуальное время — что это такое
Если бы мы реально ждали миллисекунды, тесты были бы медленными и нестабильными. Поэтому RxJS даёт TestScheduler — «виртуальное время», в котором миллисекунды проматываются мгновенно. В этом уроке мы впервые используем такую проверку.
Глоссарий
- TestScheduler — специальный планировщик RxJS, который позволяет проверять асинхронные потоки без реального ожидания.
- Marble-строка — текстовая запись потока.
20ms (a|)читается как «через 20 миллисекунд произошло значениеaи завершение|одновременно».
Что нужно сделать
- Найдите строку
const done$ = EMPTY;и заменитеEMPTYнаtimer(20). - Больше менять ничего не нужно. Marble-проверка уже описывает ожидаемое поведение.
Детерминированная проверка
Проверка идёт через виртуальное время TestScheduler. Если решение верное, в консоли появится только Test Passed!. Не добавляйте лишних console.log — это сломает сравнение.
Решение spoiler · click to reveal
const { timer } = Rx;
const done$ = timer(20); script.ts
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...