RxJs生成可中断请求序列
我需要做一个调用序列,这个序列的长度对于API是可变的。在每次迭代中,我只想在成功并且没有向观察者返回错误的情况下继续。此外,这些请求不需要以前请求中的任何数据 我如何实现这个请求队列 现在我把它看作是一个递归调用的方法,直到请求数组结束RxJs生成可中断请求序列,rxjs,Rxjs,我需要做一个调用序列,这个序列的长度对于API是可变的。在每次迭代中,我只想在成功并且没有向观察者返回错误的情况下继续。此外,这些请求不需要以前请求中的任何数据 我如何实现这个请求队列 现在我把它看作是一个递归调用的方法,直到请求数组结束 sendQueue(list: any[]) { const {request, transferData} = list[0]; this.send(request, transferData).subscribe(msg => {
sendQueue(list: any[]) {
const {request, transferData} = list[0];
this.send(request, transferData).subscribe(msg => {
if (list.length > 0) {
this.sendQueue(list.slice(1));
} else {
return of(true);
}
}, err => {
this.ns.showError(err);
return of(false);
});
}
你可以用concat。它将一个接一个地订阅每个可观察到的源,如果其中任何一个抛出错误,它将停止
sendQueue(list: any[]) {
const sources = list.map(({ request, transferData }) => this.send(request, transferData));
return concat(...sources);
}