我需要在角度2中做以下操作:
将一个可观测的放在for循环中立即触发可观测的多次。这是个糟糕的方法。什么是好方法?
发布于 2017-02-11 05:32:46
可观察到有一个重试方法,只要数据无效,就可以通过抛出错误来使用该方法:
let src: Observable<any>;// the source Observable
src.map(data => {
if (!validate(data)) {
throw "Invalid data";
}
return data;
})
.retry() // you can limit the number of retries
.subscribe(data => {
// Do something with the data
});
如果需要检查错误,可以使用retryWhen:
let src: Observable<any>;// the source Observable
src.map(data => {
if (!validate(data)) {
throw "Invalid data";
}
return data;
})
.retryWhen(errors => errors.map(err => {
if (err != "Invalid data") {
throw err;
}
})
.subscribe(data => {
// Do something with the data
});
发布于 2017-02-10 23:52:46
使用递归函数调用。
取取功能:
public getData(): Observable<any> {}
用法:
public refresh() {
this.yourService.getData().subscribe(data => {
// validate data !
if (dataValid(data) {
// do something cool here .. !
}
else {
this.refresh(); // do it again ..
}
});
}
https://stackoverflow.com/questions/42171690
复制相似问题