Итак, у меня есть следующий код, который отправляет кучу запросов, используя один и тот же сервис, на мой веб-сервис asp.net в серверной части.Метод тот же, только данные разные каждый раз, они отправляются в цикле 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'
?