使用单个响应处理程序来处理来自后端Web服务的多个Web请求响应

时间:2019-03-01 00:07:33

标签: javascript ajax asynchronous

所以我有以下代码,该代码使用相同的服务向后端的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'块之外?

0 个答案:

没有答案