RxJs生成可中断请求序列

RxJs生成可中断请求序列,rxjs,Rxjs,我需要做一个调用序列,这个序列的长度对于API是可变的。在每次迭代中,我只想在成功并且没有向观察者返回错误的情况下继续。此外,这些请求不需要以前请求中的任何数据 我如何实现这个请求队列 现在我把它看作是一个递归调用的方法,直到请求数组结束 sendQueue(list: any[]) { const {request, transferData} = list[0]; this.send(request, transferData).subscribe(msg => {

我需要做一个调用序列,这个序列的长度对于API是可变的。在每次迭代中,我只想在成功并且没有向观察者返回错误的情况下继续。此外,这些请求不需要以前请求中的任何数据

我如何实现这个请求队列

现在我把它看作是一个递归调用的方法,直到请求数组结束

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);
}