RB_*_*RB_ 0 observable rxjs angular
我正在使用 angular2 http get 方法从 API 获取对象数组。我想要一个 observable 以 1 乘 1 的方式返回数组的元素,并且延迟很短,我该如何实现这一点?这就是我现在的代码:
return this.authHttp.get('fetch/arrayOfObjects',options).map(res => res.json());
Run Code Online (Sandbox Code Playgroud)
我不希望它像下面那样工作,因此结果由单个元素返回,延迟 1 秒:
var obs = Rx.Observable.create(function (observer) {
let dt = [1,2,3,4,5];
for(let e of dt){
setTimeout(() => {
observer.next(e);
}, 1000);
}
});
obs.subscribe(data=> console.log(data));
Run Code Online (Sandbox Code Playgroud)
您可以使用concatAll()然后delay()在每次发射之间创建暂停(我假设远程服务返回一个对象数组):
return this.authHttp.get('fetch/arrayOfObjects',options)
.map(res => res.json())
.concatAll() // unpack the array into single emissions
.concatMap(val => Observable.of(val).delay(100)) // delay each emission
.subscribe(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |