【发布时间】:2019-04-07 12:24:42
【问题描述】:
是否可以将 ForkJoin 用于 post 方法?那也与使用服务有关?
我想在 Angular 中使用 ForkJoin 一次发送多个发布请求。
这是我根据此参考获得的方法的代码:https://coryrylan.com/blog/angular-multiple-http-requests-with-rxjs
let character = this.http.get('https://swapi.co/api/people/1');
let characterHomeworld = this.http.get('http://swapi.co/api/planets/1');
forkJoin([character, characterHomeworld]).subscribe(results => {
// results[0] is our character
// results[1] is our character homeworld
results[0].homeworld = results[1];
this.loadedCharacter = results[0];
});
是否可以使用带有一组参数的 POST 方法?
在这里编辑问题:
我添加了如下代码:
fetch_details(res){
var requests_list = [];
if(res == 1){
let request = this.http.post('BankDetailsUpdate', bank_params );
requests_list.push(request);
}
if(res == 2){
let request = this.http.post('PersonalDetailsUpdate', bank_params );
requests_list.push(request);
}
this.save_details(requests_list);
}
save_details(requests_list){
if(this.rejectedDetailsForm.valid){
forkJoin(requests_list).subscribe(results => {
console.log(results, "results");
},
error => console.log("Error: ", error),
() =>{
});
}
}
我收到以下错误:
Error: TypeError: Converting circular structure to JSON
at JSON.stringify (<anonymous>)
我在这里缺少什么?你能帮忙吗?
谢谢。
【问题讨论】:
-
是的,这是可能的。只要是 observable 就可以加入到 forkjoin 数组中。
-
我觉得可以,你应该试一试
-
我可以使用像 apiservice.savedata() 这样的服务来代替这个吗? http.post()
-
我已经更新了问题,你能帮我检查一下吗?