Я использую Angular RxJs subscribe
, чтобы сделать вызов HttpClient
, а затем сделать другой вызов, используя значения из первого.В этом случае есть вызов для получения address object
, а затем я делаю вызов, используя этот объект.Как это:
@Injectable()
export class AddressService {
constructor(private http: HttpClient) { }
getById(addressId: string, userId: string) {
return this.http.get(BACKEND_URL + 'getAddressById/' + [addressId, userId]);
}
}
export class AddressModalComponent implements OnInit {
constructor(private alertService: AlertService, private addressService: AddressService, @Inject(MAT_DIALOG_DATA) public data: any, private dropdownService: DropdownService)
ngOnInit() {
this.addressService.getById(this.data.id, this.data.userId)
.subscribe(
(address: Address) => {
this.dropdownService.getCidadesBrByEstado(address.name)
.subscribe((cities: BrCity[]) => {
this.cities = cities;
this.address = address;
},
error => console.log(error));
}, error => { this.alertService.error(error);
}
);
}
}
}
Я пытаюсь избежать нескольких подписок, в моем коде много таких.Мне нужен Async/Await
подход, подобный Node.js promises
, но с использованием Observables на уровне компонентов.Я не очень знаком с RxJs commands
... есть ли лучший способ сделать много звонков с помощью только одного subscribe
и catch
?