Usando as seguintes importações:
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/delay';
Experimente isto:
let fakeResponse = [1,2,3];
let delayedObservable = Observable.of(fakeResponse).delay(5000);
delayedObservable.subscribe(data => console.log(data));
ATUALIZAÇÃO: RXJS 6
A solução acima realmente não funciona mais nas versões mais recentes do RXJS (e do angular, por exemplo).
Portanto, o cenário é que tenho uma série de itens para verificar com uma API. A API aceita apenas um único item e não quero encerrar a API enviando todas as solicitações de uma vez. Portanto, preciso de uma liberação cronometrada de itens no fluxo Observável com um pequeno atraso no meio.
Use as seguintes importações:
import { from, of } from 'rxjs';
import { delay } from 'rxjs/internal/operators';
import { concatMap } from 'rxjs/internal/operators';
Em seguida, use o seguinte código:
const myArray = [1,2,3,4];
from(myArray).pipe(
concatMap( item => of(item).pipe ( delay( 1000 ) ))
).subscribe ( timedItem => {
console.log(timedItem)
});
Basicamente, ele cria um novo Observable 'atrasado' para cada item em sua matriz. Provavelmente existem muitas outras maneiras de fazer isso, mas funcionou bem para mim e está em conformidade com o 'novo' formato RXJS.