在post请求中使用带有映射的ForkJoin-angular 8

在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([]), });

我有一个模块,发送许多请求,顺序如下:

第一个请求保存大部分数据并返回将在其他请求中发送的Id。 在my.ts文件中:

  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']);
});
我应该做这项工作