У меня есть json с именем, значением и начальным именем. Когда пользователь нажимает кнопку «Отправить», я проверяю, одинаковы ли значение и начальное значение для каждого элемента json. Если значение и начальное значение не совпадают, я вызываю сервисный вызов, используя Rxjs. Если начальное значение и значение одинаковы для всех элементов, должно отображаться сообщение об ошибке, что «данные об ошибке не изменены». Но поскольку вызовы angular2 являются асинхронными, я не могу этого сделать.
Мой json такой-
this.subscriptionList= [{name:"Chat Integration",value:false,initialValue:false},{name:"Dashboard Functionality",value:false,initialValue:false},
{name:"Quarterly Maintenance Window",value:false,initialValue:false},{name:"Remedy Planned Outages",value:false,initialValue:false},
{name:"Schedule Integration",value:false,initialValue:false}];
при нажатии кнопки отправки я вызываю эту функцию-
submitData()
{
var anyChangeDetected: boolean = false;
for(var i=0;i<this.subscriptionList.length;i++)
{
if(this.subscriptionList[i].value != this.subscriptionList[i].initialValue)
{
anyChangeDetected = true;
this.remedyService.submitSubscription(this.subscribeObject).subscribe(
data =>{
},
err=>{
},
()=>{
});
}
}
if(anyChangeDetected == false)
{
alert("Data is not changed");
}
}
Теперь проблема заключается в том, что когда я вызываю эту функцию, для веб-вызова происходит асинхронный вызов, и поток напрямую переходит в блок if (anyChangeDetected == false), и каждый раз, когда я получаю это предупреждение. Как я могу этого избежать?