подождите http req unit отделка угловых (услуги) - PullRequest
0 голосов
/ 01 ноября 2018

в моем компоненте службы угловых вызовов мне нужно подождать и изменить перед тем, как переместить, чтобы выполнить весь код, какое-либо решение?

read(idPos:string){
  var choice = 0;   
  this.menuItemsService.getAllDataMenuItemsByParentId(idPos).subscribe(data=> 
    { 
    choice = 1; // change Value to 1 
    if(data.length !=0){
     this.data =data;
    }   

    console.log(choice)
  })
  console.log(choice); // print 0 no change to =1

1 Ответ

0 голосов
/ 01 ноября 2018

По сути, вам не следует помещать какой-либо код ниже асинхронного вызова (подписки), как в вашем примере.

Вместо этого рассмотрим это:

read(idPos:string){
  var choice = 0;   
  this.menuItemsService.getAllDataMenuItemsByParentId(idPos).subscribe(data=> 
  { 
    choice = 1; // change Value to 1 
    if(data.length !=0){
     this.data =data;
    }   

    console.log(choice)

    this.continueRead(choice);
  })
  // console.log(choice); // <<< remove this line.
}

continueRead(choice: number) {
  console.log(choice); // <<< will print 1
}
...