Оператор delay()
просто добавляет задержку к каждому значению next
, но ему все равно, истекла ли предыдущая задержка.
Так что здесь происходит, что of()
немедленно испускает 5 значений, где все 5 запланированы для повторной передачи delay
одновременно через 2 с.
Вы должны будете использовать, например, concatMap
, который будет проецировать каждое значение в Observable и ждать, пока это не завершится. Только после этого продолжайте с другим значением:
const arr = [1,2,3,4,5];
const source = of(...arr).pipe(
concatMap(value => of(value).pipe(
delay(2000),
)),
);
source.subscribe(...);
Демонстрация вашего обновления: https://stackblitz.com/edit/typescript-cknhbr?file=index.ts