Способ сделать это вательно будет сделать один запрос и сделать следующий запрос внутри обещание.
Я думаю, что лучший подход на сегодняшний день заключается в том, чтобы расширить вашу функцию SharedVar.setDataS (d) таким образом, чтобы она не зависела от последовательного получения данных. Как и SharedVar.setDataS (d, index) и используя конфигурацию var в вашем $ http.get (или любом другом) функциональном коду внутри вашего RESTApi, чтобы продвигать этот индекс до полного обещания.
Если RESTApi выглядит следующим образом:
var RESTApi = {
getAnswerdCallsByHour : function(hour) {
var url = "bla.com/myservice?hour=" + hour;
return $http.get(url).data;
}
// Some other Methods...
Тогда вам нужен способ, чтобы передать что-то «изменить порядок» ваши данные, когда он прибывает асинхронно, то это может быть индекс вы подсчитывать или в вашем случае может быть час переменный:
var RESTApi = {
getAnswerdCallsByHour : function(hour) {
var url = "bla.com/myservice?hour=" + hour;
var config = [];
config.hour = hour;
return $http.get(url, config); // Return the promise not just data or a specific field
}
// Some other Methods...
Теперь, когда ваше обещание fullfiled вы можете получить доступ к "часу" Variable так:
var d = SharedVar.getDataS();
d[promise.config.hour] = promise.data;
SharedVar.setDataS(d);
Теперь вы знаете, какая часть данных коррелирует с запросом, и вам не нужно получать данные по порядку. Последняя часть работает правильно только когда часы работает последовательный от 0 до 23, если это не так, вам нужно:
var RESTApi = {
getAnswerdCallsByHour : function(hour, index) {
var url = "bla.com/myservice?hour=" + hour;
var config = [];
config.index = index;
return $http.get(url, config);
}
// Some other Methods...
...
...
var d = SharedVar.getDataS();
d[promise.config.index] = promise.data;
SharedVar.setDataS(d);
Я попытался предложить, все еще сталкиваясь с тем же вопросом. то, что я сделал, передает индекс в SharedVar.setData (d, index). о RESTApi просто извлекает данные из базы данных и возвращает счет. –
Да, не совсем ясно, есть ли у меня то, что я пытался сказать. Я добавил код к моему ответу. – reineckm