Verwenden der folgenden Importe:
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/delay';
Versuche dies:
let fakeResponse = [1,2,3];
let delayedObservable = Observable.of(fakeResponse).delay(5000);
delayedObservable.subscribe(data => console.log(data));
UPDATE: RXJS 6
Die obige Lösung funktioniert in neueren Versionen von RXJS (und beispielsweise von Angular) nicht mehr wirklich.
Das Szenario ist also, dass ich eine Reihe von Elementen habe, mit denen ich eine API überprüfen kann. Die API akzeptiert nur ein einzelnes Element, und ich möchte die API nicht beenden, indem alle Anforderungen gleichzeitig gesendet werden. Daher benötige ich eine zeitgesteuerte Veröffentlichung von Elementen im Observable-Stream mit einer kleinen Verzögerung dazwischen.
Verwenden Sie die folgenden Importe:
import { from, of } from 'rxjs';
import { delay } from 'rxjs/internal/operators';
import { concatMap } from 'rxjs/internal/operators';
Verwenden Sie dann den folgenden Code:
const myArray = [1,2,3,4];
from(myArray).pipe(
concatMap( item => of(item).pipe ( delay( 1000 ) ))
).subscribe ( timedItem => {
console.log(timedItem)
});
Grundsätzlich wird für jedes Element in Ihrem Array ein neues "verzögertes" Observable erstellt. Es gibt wahrscheinlich viele andere Möglichkeiten, dies zu tun, aber dies hat für mich gut funktioniert und entspricht dem 'neuen' RXJS-Format.