使用以下导入:
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(例如,角度版本)中不再有效。
因此,情况是我有一系列要与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)
});
它基本上为数组中的每个项目创建了一个新的“延迟” Observable。可能还有许多其他方法可以执行此操作,但是这对我来说效果很好,并且符合“新” RXJS格式。