Я очень плохо знаком с Angular и застрял в том, как вызывать службы СИНХРОННО ..
У меня две службы http GET, скажем, ServiceA и ServiceB , которые до сих пор вызывались по отдельности, успешно вызывались, т.е. были независимы друг от друга.
Но теперь из-за изменения требований я вынужден вызываться в цикле ServiceB сЗначение параметра передается из значения, возвращенного ранее путем вызова ServiceA внутри функции в файле компонента.
for(let i=0;i<3;i++){
this.ServiceA.methodA().subscribe(result => {
this.masterID= result.ID;
console.log('Inside outer service');
this.ServiceB.methodB(masterID).subscribe(
resultInner => {
child = resultInner.Text;
console.log('Inside Inner service');
});
});
}
Я пытаюсь передать значение, возвращенное ServiceA , хранящимся в переменнойmasterID
в качестве параметра для внутреннего ServiceB и проверка порядка вызовов с помощью предупреждений, но они не вызываются синхронно.Наблюдаемое поведение состоит в том, что перед заполнением значения masterId
успешным ответом, возвращаемым внешним ServiceA , вызывается внутренняя служба, т.е. ServiceB , и параметр paremeter masterID
передается пустым, что дает неправильную функциональность.
Может кто-нибудь, пожалуйста, помогите заставить это вести себя правильно?
Наблюдаемое поведение в console.log ()
Inside Outer service
Inside Outer service
Inside Outer service
Inside Inner service
Inside Inner service
Inside Inner service
Ожидаемое поведение
Inside Outer service
Inside Inner service
Inside Outer service
Inside Inner service
Inside Outer service
Inside Inner service