Как воспроизвести задержку из RxJs 6.x?

Поведение delayизменилось в RxJs 7. Хотя я понимаю причину изменения, это было полезно для демонстрационного проекта, который я использую для моделирования задержек API-интерфейса по сети. В RxJs 6 приведенный ниже код будет регистрироваться в консоли только после 5-секундной задержки, но в 7 он сразу же записывается (7 больше не ожидает задержек на пустом наблюдаемом). Есть ли способ воспроизвести следующее в RxJs 7?

      import { EMPTY } from 'rxjs';
import { delay } from 'rxjs/operators';

EMPTY.pipe(delay(5000)).subscribe({
  complete: () => {
    console.log('complete');
  },
});

См. Примеры Stackblitz ниже.

RxJS 7 (без задержки): https://stackblitz.com/edit/rxjs-yx19nb?file=index.tsRxJS 6 (задержка 5 секунд): https://stackblitz.com/edit/rxjs-8rmhov?file=index.ts

1 ответ

Вместо этого используйте таймер.

      timer(5000).pipe(
  ignoreElements()
).subscribe(...);
Другие вопросы по тегам