Как остановить выполнение извлечения данных, пока другие массивы не заполнятся данными - PullRequest
0 голосов
/ 20 апреля 2020

Ребята, у меня есть Datatable на angular, и я хочу заполнить его объектом, но сначала мне нужно изменить значение его данных. Проблема в том, что новые данные поступают из другой службы, поэтому сначала мне нужно получить данные службы отдела, прежде чем собирать и изменять данные, которые можно датировать. Возможно, функция обратного вызова может решить мою проблему, но я не знаю, как использовать ее на angular.

Мой код:

  ngOnInit() {
    this.id=this._Activatedroute.snapshot.paramMap.get("id");
    this.service.get_cars().subscribe((data)=>{// get departement service data
      console.log(data);
      this.UIGestionlist = json2array(data);
      this.departements = this.UIGestionlist[5];
      this.ChauffeursListe = this.UIGestionlist[6];

    });
    this.service.Car_log_charge(this.id).subscribe(data=>{
      console.log(data);
      this.Car_logs = json2array(data);
            for(let i= 0; i<this.Car_logs.length;i++){// modify Datatable departement value
        console.log(this.Car_logs[i].Department);
        for(let m =0 ; m<this.departements.length;m++){
          if(this.departements[m].Id == this.Car_logs[i].Department){
            console.log('Congs '+ this.departements[m].Id);
            this.Car_logs[i].Department = this.departements[m].Name;
          }
        }
      }

      this.listdata = new MatTableDataSource(this.Car_logs);
      this.listdata.sort = this.sort;
      this.listdata.paginator = this.paginator;
    });
  }
}

1 Ответ

1 голос
/ 20 апреля 2020

Выезд rx js switchMap. Это позволяет вам «связать» наблюдаемые. Вы можете сделать свой первый звонок (get_cars), выполнить манипуляции с данными, а затем подписаться на второй звонок (Car_log_change).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...