Node.js 如何循环处理多个http post请求?

Node.js 如何循环处理多个http post请求?,node.js,angular,loops,asynchronous,Node.js,Angular,Loops,Asynchronous,我有一个要传递给mongoDB模型的对象数组,该模型一次接受一个对象,我尝试循环http post请求,但由于它是异步的,所以不起作用。还有其他解决办法吗 for (let entry of ingredients) { const body = JSON.stringify(entry); console.log(body); const headers = new HttpHeaders({'Content-Type': 'application/json'});

我有一个要传递给mongoDB模型的对象数组,该模型一次接受一个对象,我尝试循环http post请求,但由于它是异步的,所以不起作用。还有其他解决办法吗

for (let entry of ingredients) {
    const body = JSON.stringify(entry);
    console.log(body);
    const headers = new HttpHeaders({'Content-Type': 'application/json'});
    return this.http.post('http://localhost:3000/shopping-list', body, {headers: headers})
        .catch((error: Response) => Observable.throw(error));

}

谢谢

如果您想连续发出请求,请尝试

可观察到的(成分)
.concatMap(条目=>this.http.post('http://localhost:3000/shopping-列表(条目)
.订阅(
response=>console.log(response),//对响应执行一些操作
error=>console.error(error),//所以出现了一些错误
()=>console.info(“完成所有请求”)//完成所有请求后执行操作
);

函数只能返回一次。您希望以串联方式还是并行方式发出这些请求?阅读各种组合运算符的RxJS文档。我想一个接一个地提出请求。非常感谢!我认为使用forkJoin比使用concatMap(concatMap等待完成第二个调用后再执行一个调用)更好。现在,它的工作原理如下:从'rxjs'导入{from as observeFrom};observableFrom(accs).pipe(concatMap(entry=>this.http.post(“”,entry))).subscribe(response=>console.log(response),//对响应执行操作error=>console.error(error),//因此出错时执行操作()=>console.info(“完成所有请求”)//完成所有请求后执行操作);