在post请求中使用带有映射的ForkJoin-angular 8
我有一个模块,发送许多请求,顺序如下: 第一个请求保存大部分数据并返回将在其他请求中发送的Id。 在my.ts文件中:在post请求中使用带有映射的ForkJoin-angular 8,angular,rxjs,fork-join,Angular,Rxjs,Fork Join,我有一个模块,发送许多请求,顺序如下: 第一个请求保存大部分数据并返回将在其他请求中发送的Id。 在my.ts文件中: ngOnInit(): void { this.datosOferta = this.fb.group({ ... domicilio_empleo: ['option1'], conocimiento: this.fb.array([]), experiencia: this.fb.array([]), });
ngOnInit(): void {
this.datosOferta = this.fb.group({
...
domicilio_empleo: ['option1'],
conocimiento: this.fb.array([]),
experiencia: this.fb.array([]),
});
this.conocimiento.push(this.fb.control(null));
.... // more data pushed to this 2 arrays + more data
}
get conocimiento() {
return this.datosOferta.get('conocimiento') as FormArray;
}
save() {
let dataPost = {...this.datosOferta.value};
this.service.save1(dataPost).subscribe((res: any)=>{
if(res.result) {
this.service.setId(res.id);
// **** I have 2 input arrays that need to do this map
this.conocimiento.value.map( (x, idx) => {
let _idiomaObj = {
idOferta: this.service.id,
idIdioma: this.datosOferta.controls.idiomaComponent.value[idx],
idIdiomaCert: this.datosOferta.controls.certificado.value[idx],
}
this.service.save(_idiomaObj).subscribe( respuesta => {
console.log(respuesta)
})
})
this.service.anotherSave(data).subscribe( res => { console.log(res) }
// if all are succes
this.router.navigate(['/next-page']);
我需要等到所有地图和其他功能成功结束后才能运行到下一页,但我不确定如何将此地图与ForkJoin混合使用,欢迎提出任何想法。类似
const requestsArray = this.conocimiento.value.map((x, idx) => {
const _idiomaObj = {
idOferta: this.service.id,
idIdioma: this.datosOferta.controls.idiomaComponent.value[idx],
idIdiomaCert: this.datosOferta.controls.certificado.value[idx],
}
return this.service.save(_idiomaObj);
});
const anotherRequest = this.service.anotherSave(data);
forkJoin([...requestsArray, anotherRequest]).subscribe(results => {
console.log(results);
this.router.navigate(['/next-page']);
});
我应该做这项工作