所以我有以下代码,该代码使用相同的服务向后端的asp.net Web服务发送一堆请求。方法是相同的,只是每次数据都不同,它们在for循环中发送:
for (let i = 1; i <= totalNumberOfDataRows; i++) {
//some code
//service,method are the same below, just body is different within each loop
app.sendToService(service, method, body, this._handleResponse.bind(this)
}
然后,我下面的代码处理返回的响应:
_handleResponse: function(response, body, method) {
var data = response.d.result;
switch (method) {
//some code with case/break with other methods
default:
if (response.d.statusCode === 0) {
app.showDialog("Definitions", "Successfully updated.");
this._requestData(this.routeData.guid);
} else {
//2/18/2019: added error message to display
app.showDialog("Definitions (FAILED)", "Failed to update. " + response.d.statusMsg);
}
break;
}
}
问题是,仅将此响应处理程序编写为一次处理来自后端的一个响应。现在我的代码编写方式,一旦来自for循环的任何调用的任何响应返回,将调用响应处理程序,并且该处理程序将中断,从而使它无法处理任何响应(如果存在)另一个回应回来了。
我将如何更改_handleResponse
方法来解决此问题,以便它将等到对该方法的所有响应下降到'case'
块之外?