Angular 如果请求失败,ConcatMap将跳过元素
如果concatMap中的请求get失败,如何跳过元素Angular 如果请求失败,ConcatMap将跳过元素,angular,rxjs6,Angular,Rxjs6,如果concatMap中的请求get失败,如何跳过元素 const obs = from(this.genes); this.subs = obs.pipe( concatMap(res => { const gn = this.service.getData(this.resource + '/' + res.name); return gn.pipe(map(r => { for (let x = 0; x <
const obs = from(this.genes);
this.subs = obs.pipe(
concatMap(res => {
const gn = this.service.getData(this.resource + '/' + res.name);
return gn.pipe(map(r => {
for (let x = 0; x < res.l; x++) {
this.tableData[res.i + x]['g'] = r.gene;
}
}, err => {
console.log(err);
}));
})
).subscribe(x => {}
);
如果第一个URL失败,则下一个URL将无法运行。如何跳过它?concatMap()
只影响可观测源的“成功”排放(“code>next()handler called”)。此外,对于“跳过”值,您不能为它们定义处理程序
我会做这两件事中的任何一件:
this.subs = obs
.pipe(
concatMap(res => this.service.getData(this.resource + '/' + res.name),
// result selector to make both variables avaiable in subscribe
(outer, inner) => ({ res: outer, data: inner }))
)
.subscribe({
next: (response => {
for (let x = 0; x < response.res.l; x++) {
this.tableData[response.res.i + x]['g'] = response.data.gene;
}
}),
error: err => console.error(err)
})
this.subs=obs
.烟斗(
concatMap(res=>this.service.getData(this.resource+'/'+res.name),
//结果选择器,使这两个变量在subscribe中都可用
(外部,内部)=>({res:outer,data:inner}))
)
.订阅({
下一步:(响应=>{
for(设x=0;xconsole.error(err)
})
或
this.subs=obs
.烟斗(
concatMap(res=>{
返回this.service.getData(this.resource+'/'+res.name)
.烟斗(
点击(r=>{
for(设x=0;x{},
错误:err=>console.error(err)
})
this.subs = obs
.pipe(
concatMap(res => this.service.getData(this.resource + '/' + res.name),
// result selector to make both variables avaiable in subscribe
(outer, inner) => ({ res: outer, data: inner }))
)
.subscribe({
next: (response => {
for (let x = 0; x < response.res.l; x++) {
this.tableData[response.res.i + x]['g'] = response.data.gene;
}
}),
error: err => console.error(err)
})
this.subs = obs
.pipe(
concatMap(res => {
return this.service.getData(this.resource + '/' + res.name)
.pipe(
tap(r => {
for (let x = 0; x < res.l; x++) {
this.tableData[res.i + x]['g'] = r.gene;
}
})
)
})
)
.subscribe({
next: response => { },
error: err => console.error(err)
})