在不同端点上发送角度表单



我在页面上有三个表单组的表单

this.form = this.formBuilder.group({
profile: this.formBuilder.group({
name: [''],
description: [''],   
}),
members: this.formBuilder.array([
this.formBuilder.group({
name: [''],
experience: [''],
}),
]),
drinks: this.formBuilder.array([
this.formBuilder.group({
name: [''],
description: [''],
}),
]),
});

在我的情况下,我需要在三个不同的端点上发送这三个表单组。

sendForm() {  
const team = this.form.controls.profile.value;
const members = this.form.controls.members.value; 
const drinks = this.form.controls.drinks.value);
this.teamService.sendTeam(team).subscribe((response) => {
console.log(response);
});
this.teamService.sendMembers(members).subscribe((response) => {
console.log(response);
});
this.teamService.sendDrinks(drinks).subscribe((response) => {
console.log(response);
});
}

此类请求的最佳做法是什么?我知道三个订阅不是最好的方法,但肯定是最简单的方法。感谢您的建议。

import { forkJoin } from 'rxjs';

sendForm() {
const team = this.form.controls.profile.value;
const members = this.form.controls.members.value; 
const drinks = this.form.controls.drinks.value);

forkJoin(
this.teamService.sendTeam(team),
this.teamService.sendMembers(members),
this.teamService.sendDrinks(drinks),
).subscribe(([team, members, drinks]) => {

// any function

})
}
const teamObservable$ = this.teamService.sendTeam(team);
const memberObservable$ = this.teamService.sendMembers(members);
const serviceObservable$ = this.teamService.sendDrinks(drinks);
combineLatest(teamObservable$, memberObservable$, serviceObservable$)
.subscribe(([teamResponse, memberResponse, serviceResponse]) => { 
})

最新更新