Menggunakan impor berikut:
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/delay';
Coba ini:
let fakeResponse = [1,2,3];
let delayedObservable = Observable.of(fakeResponse).delay(5000);
delayedObservable.subscribe(data => console.log(data));
PEMBARUAN: RXJS 6
Solusi di atas tidak benar-benar berfungsi lagi di versi RXJS yang lebih baru (dan sudut misalnya).
Jadi skenarionya adalah bahwa saya memiliki serangkaian item untuk diperiksa dengan API. API hanya menerima satu item, dan saya tidak ingin menghentikan API dengan mengirim semua permintaan sekaligus. Jadi saya perlu rilis item yang diatur waktunya di aliran Observable dengan sedikit penundaan di antaranya.
Gunakan impor berikut:
import { from, of } from 'rxjs';
import { delay } from 'rxjs/internal/operators';
import { concatMap } from 'rxjs/internal/operators';
Kemudian gunakan kode berikut:
const myArray = [1,2,3,4];
from(myArray).pipe(
concatMap( item => of(item).pipe ( delay( 1000 ) ))
).subscribe ( timedItem => {
console.log(timedItem)
});
Ini pada dasarnya menciptakan Observable 'tertunda' baru untuk setiap item dalam array Anda. Mungkin ada banyak cara lain untuk melakukannya, tetapi ini berfungsi dengan baik untuk saya, dan sesuai dengan format RXJS 'baru'.