Ich habe einen JSON mit Name, Wert und initial name.Wenn der Benutzer klicken Sie auf Senden Ich überprüfe, ob Wert und Anfangswert gleich oder anders für jedes Element von JSON ist. Wenn der Wert und der Anfangswert nicht gleich sind, rufe ich einen Dienstanruf unter Verwendung von Rxjs an. Wenn Initail-Wert und -Wert für alle Elemente gleich ist, sollte eine Fehlermeldung angezeigt werden, dass "Error-Data nicht geändert wurde". Aber da angular2-Aufrufe asynchron sind, kann ich das nicht.Synchrone Webcalls mit angular2
Mein json ist wie this-
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}];
auf Klick auf Absenden-Button Ich rufe diese funktions-
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");
}
}
Jetzt ist das Problem, wenn ich diese Funktion aufrufen, für Web-Aufruf asynchronen Aufruf ist passiert und der Fluss ging direkt zu if (anyChangeDetected == false) Block und jedes Mal, wenn ich diese Warnung bekomme. Wie kann ich es vermeiden?
Danke MXII, aber es gibt auch andere Arten von Arbeit muss ich vor und nach dem Service-Aufruf tun für alle Elemente geschieht wie das Laden spinner Animation ... – RHUL
Gibt es eine Möglichkeit Sätze von Arbeit zu tun, vor und nachdem alle Service-Anrufe passiert .. um alles synchron zu machen, um eine gute Kontrolle zu haben, um zu programmieren. – RHUL
Werfen Sie einen Blick auf meine Änderungen, fügte einige Kommentare hinzu. Es gibt keine Möglichkeit, es synchron zu machen, denn Web-Calls sind immer asynchron! :) – mxii