Мне нужно сделать синхронный звонок с помощью Amgular8. Я объясняю свой код ниже.
constructor(private fb: FormBuilder,private as: ApiService,private storeService: StoreService, private router: Router, private route : ActivatedRoute) {
this.getAllStores();
this.route.paramMap.subscribe(params => {
this.editID = params.get('id');
this.getUser(params.get('id'));
});
}
getAllStores() {
this.sCodes = [];
let roleName = (this.users && this.users.RoleName) || '';
if(roleName.toUpperCase() === 'SHOWROOM') {
this.storeService.getShowroomStores().subscribe(data => {
//console.log('stores', data);
this.sCodes = data['data'];
})
}else{
this.storeService.getPosStores().subscribe(data => {
console.log('stores', data);
this.sCodes = data['data'];
})
}
}
getUser(id:String){
this.as.getUserById(id).subscribe(x => {
this.users = x['data'] as Users;
this.setForm();
});
}
Здесь мне нужно сначала позвонить this.getAllStores
, а затем this.getUser
, но в соответствии с моим кодом сначала выполняется this.getUser
, а затем this.getAllStores
в результате я получить неправильный результат. Поэтому мне нужно сначала выполнить this.getAllStores
.