我有一个具有名称、值和初始名称的 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) 块,每次我收到那个警报。我怎样才能避免它?