Використовуючи такі імпорти:
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)
});
Це в основному створює нове сповільнене спостереження для кожного елемента у вашому масиві. Можливо, існує багато інших способів зробити це, але це для мене добре працювало і відповідає "новому" формату RXJS.