$http.get('/services/menu').success(function (dataMenu) {
$http.get('/services/language').success(function (dataLanguage) {
console.log('dataLanguage', dataLanguage);
$scope.menuRoot = dataMenu.result.items;
$scope.menuItems = dataMenu.result.items;
$scope.languageRoot = dataLanguage.result;
$scope.currentMenuItem = null;
$scope.refreshExperiments();
$scope.mergeLanguage();
});
});
Odpowiedz
Tak, można uruchomić je równolegle za pomocą $q.all
:
$q.all([$http.get('/services/menu'), $http.get('/services/language')])
.then(function (res) {
var dataMenu = res[0].data.result.items;
console.log('dataLanguage', res[1].data);
$scope.menuRoot = dataMenu;
$scope.menuItems = dataMenu;
$scope.languageRoot = res[1].data.result;
$scope.currentMenuItem = null;
$scope.refreshExperiments();
$scope.mergeLanguage();
});
Działa jak urok. Zwróć uwagę, że res zawiera kolejny obiekt "danych", więc go zredagowałem. – Guy
Alternatywnie:
var menuPromise = $http.get('/services/menu');
var languagePromise = $http.get('/services/language');
menuPromise.success(function(dataMenu) {
languagePromise.success(function(dataLanguage) {
console.log('dataLanguage', dataLanguage);
$scope.menuRoot = dataMenu.result.items;
$scope.menuItems = dataMenu.result.items;
$scope.languageRoot = dataLanguage.result;
$scope.currentMenuItem = null;
$scope.refreshExperiments();
$scope.mergeLanguage();
});
});
co sprawia, że oba $http
żądań w tym samym czasie, a następnie uruchamia kod blok (console.log... etc
) po spełnieniu obu obietnic $http
.
Jesteś pewien, że to zadziała? Co się stanie, jeśli językPromise zostanie zakończony przed wersją languagePromise? – Guy
"... niezależnie od tego, kiedy obietnica została lub zostanie rozwiązana lub odrzucona," następnie "asynchronicznie wywołuje jedno z wezwań dotyczących sukcesu lub błędów, gdy tylko wynik jest dostępny" -wymiarowe dokumenty na 'then'. ... Myślę, że 'success' to po prostu cukier dla' then', więc jeśli najpierw zostanie rozstrzygnięta opcja languagePromise, to nadal nie zostanie wywołana, dopóki nie zostanie rozwiązana opcja menuPromise – Brendan
- 1. Czy istnieje lepszy sposób na zapisanie tego?
- 2. Czy istnieje lepszy sposób na odświeżenie WebView?
- 3. Czy istnieje sposób na rozwiązanie wielu obietnic za pomocą kątomierza?
- 4. Czy istnieje lepszy sposób nadawania tablic?
- 5. Czy istnieje lepszy sposób na konwersję z UTCTime na EpochTime?
- 6. Czy istnieje lepszy sposób zarządzania zlokalizowanymi ciągami?
- 7. Obracanie obrazów na Androidzie. Czy istnieje lepszy sposób?
- 8. Czy istnieje lepszy sposób na zbieranie danych z Twittera?
- 9. Czy istnieje lepszy sposób na wychwycenie tylko określonych przyczyn wyjątku?
- 10. Czy istnieje lepszy sposób użycia strip() na liście ciągów? - pyton
- 11. Czy istnieje lepszy sposób na wyodrębnienie pory dnia?
- 12. Lepszy sposób zastosowania modułów css do AngularJS
- 13. Czy istnieje lepszy sposób tworzenia klasy obiektowej z jquery?
- 14. Lepszy sposób na podzapytanie
- 15. Lepszy sposób na powtarzanie dwóch lub wielu list jednocześnie.
- 16. Czy istnieje lepszy sposób sprawdzenia, czy plik jest zapisywany?
- 17. Lepszy sposób na łączenie dwóch posortowaną listę liczb całkowitych
- 18. Lepszy sposób na aplikacje Swing
- 19. Czy istnieje sposób na scalenie dwóch NSMutableArray w celu c?
- 20. Czy istnieje sposób na połączenie dwóch plików .gcda w jeden?
- 21. Dziedziczenie interfejsu/hierarchie w .Net - czy istnieje lepszy sposób?
- 22. porównaj, czy element istnieje na dwóch listach
- 23. Podsumowanie list w python - czy istnieje lepszy sposób?
- 24. Czy istnieje sposób na uruchomienie aplikacji angularJS jako komponentu polimerowego?
- 25. Czy istnieje lepszy sposób, aby ukryć backBarButtonItem niż to?
- 26. Czy istnieje lepszy sposób monitorowania plików dziennika? (Linux/python)
- 27. Zapobieganie wielu żądaniom $ http w Angular. Czy istnieje lepszy sposób?
- 28. Czy istnieje lepszy sposób zamaskowania numeru karty kredytowej w python?
- 29. Czy istnieje lepszy sposób zapisu metody "ciąg zawiera X"?
- 30. Czy istnieje lepszy sposób zapisu pełnej zawartości pliku do OutputStream?
Możesz chcieć rzucić okiem na ['$ q.all'] (http://docs.angularjs.org/api/ng.$q) i [' $ q.when'] (http://docs.angularjs.org/api/ng.$q). –