Наблюдаемые работают асинхронно.Когда вы вызываете их, есть часть вашего кода, которая будет ждать его завершения, но остальная часть вашего кода продолжит работать.Например, эта функция
myFunc() {
console.log('hello 1');
this.myservice.getSomething().subscribe(() => console.log('hello 2'));
console.log('hello 3');
}
выдаст ее в консоли
> hello 1
> hello 3
> hello 2
Таким образом, вам придется поместить свой второй сервисный вызов в subscribe
вашего первого сервисного вызова.Кроме того, я бы предложил использовать patchValue()
вместо controls.fieldName.setValue()
if (this.partRecevingForm.controls.ShipperHasNoPO.value == true) {
this._partReceivingService.generateTempPo().subscribe(res=>{
this.partRecevingForm.patchValue({customerOrderNumber: res.tempPONo});
this._partReceivingService.receiveNewPart(this.partRecevingForm.value).subscribe(data=>{
//notifications
});
});
} else {
this._partReceivingService.receiveNewPart(this.partRecevingForm.value).subscribe(data=>{
//notifications
})
}