Используя следующий импорт:
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/delay';
Попробуй это:
let fakeResponse = [1,2,3];
let delayedObservable = Observable.of(fakeResponse).delay(5000);
delayedObservable.subscribe(data => console.log(data));
ОБНОВЛЕНИЕ: RXJS 6
Вышеупомянутое решение больше не работает в более новых версиях RXJS (и, например, angular).
Итак, сценарий таков, что у меня есть массив элементов, которые нужно проверить с помощью API. API принимает только один элемент, и я не хочу убивать API, отправляя все запросы сразу. Так что мне нужен синхронизированный выпуск элементов в потоке Observable с небольшой задержкой между ними.
Используйте следующий импорт:
import { from, of } from 'rxjs';
import { delay } from 'rxjs/internal/operators';
import { concatMap } from 'rxjs/internal/operators';
Затем используйте следующий код:
const myArray = [1,2,3,4];
from(myArray).pipe(
concatMap( item => of(item).pipe ( delay( 1000 ) ))
).subscribe ( timedItem => {
console.log(timedItem)
});
По сути, он создает новый «отложенный» Observable для каждого элемента в вашем массиве. Вероятно, есть много других способов сделать это, но это сработало для меня и соответствует «новому» формату RXJS.