Angular 可观测发射阵元
我使用angular2 http get方法从API获取对象数组。我想让一个可观测的元素以一个很短的延迟返回数组的1乘1,我如何才能做到这一点?这就是我现在的代码:Angular 可观测发射阵元,angular,rxjs,observable,Angular,Rxjs,Observable,我使用angular2 http get方法从API获取对象数组。我想让一个可观测的元素以一个很短的延迟返回数组的1乘1,我如何才能做到这一点?这就是我现在的代码: return this.authHttp.get('fetch/arrayOfObjects',options).map(res => res.json()); 我不希望它像下面那样工作,因此结果由单个元素返回,延迟1秒: var obs = Rx.Observable.create(function (observer)
return this.authHttp.get('fetch/arrayOfObjects',options).map(res => res.json());
我不希望它像下面那样工作,因此结果由单个元素返回,延迟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));
您可以使用
delay
运算符。请参阅。您可以使用delay
运算符。请参阅。您可以使用concatAll()
然后使用delay()
在每次发射之间创建暂停(我假设远程服务返回一个对象数组):
您可以使用
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(...)