Usando las siguientes importaciones:
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/delay';
Prueba esto:
let fakeResponse = [1,2,3];
let delayedObservable = Observable.of(fakeResponse).delay(5000);
delayedObservable.subscribe(data => console.log(data));
ACTUALIZACIÓN: RXJS 6
La solución anterior ya no funciona en las versiones más nuevas de RXJS (y de angular, por ejemplo).
Entonces, el escenario es que tengo una variedad de elementos para verificar con una API. La API solo acepta un único elemento y no quiero eliminar la API enviando todas las solicitudes a la vez. Por lo tanto, necesito una publicación programada de elementos en la secuencia Observable con un pequeño retraso en el medio.
Utilice las siguientes importaciones:
import { from, of } from 'rxjs';
import { delay } from 'rxjs/internal/operators';
import { concatMap } from 'rxjs/internal/operators';
Luego usa el siguiente código:
const myArray = [1,2,3,4];
from(myArray).pipe(
concatMap( item => of(item).pipe ( delay( 1000 ) ))
).subscribe ( timedItem => {
console.log(timedItem)
});
Básicamente, crea un nuevo Observable 'retrasado' para cada elemento de su matriz. Probablemente hay muchas otras formas de hacerlo, pero esto funcionó bien para mí y cumple con el "nuevo" formato RXJS.