$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();
});
});
Trả lời
Vâng, bạn có thể chạy chúng song song bằng cách sử dụng $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();
});
Hoạt động như một sự quyến rũ. Lưu ý rằng res chứa một đối tượng 'data' khác nên tôi đã chỉnh sửa nó. – Guy
Hoặc:
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();
});
});
mà làm cho cả hai $http
yêu cầu cùng một lúc, và sau đó chạy mã khối (console.log... etc
) sau khi cả hai lời hứa $http
đã được hoàn thành.
Bạn có chắc nó sẽ hoạt động không? Điều gì sẽ xảy ra nếu ngôn ngữPromise được hoàn tất trước ngôn ngữTốc độ? – Guy
"... bất kể khi nào lời hứa hoặc sẽ được giải quyết hoặc bị từ chối,' sau đó sẽ gọi một trong các cuộc gọi lại thành công hoặc lỗi không đồng bộ ngay khi kết quả có sẵn "tài liệu hình thái trên' sau đó'. ... Tôi nghĩ rằng 'thành công 'chỉ là đường cho' then' vì vậy nếu languagePromise được giải quyết trước, nó vẫn sẽ không được gọi cho đến khi menuPromise đã được giải quyết – Brendan
- 1. Chuỗi lời hứa AngularJS
- 2. Sử dụng lời hứa trong AngularJS Views
- 3. Dừng một chuỗi AngularJS lời hứa
- 4. Ember router: mô hình không đồng bộ (lời hứa?)
- 5. AngularJS hứa
- 6. AngularJS - từ chối lời hứa $ $ với $ routeProvider: giải quyết
- 7. Cách kiểm tra lời hứa với Mocha
- 8. Làm cách nào để đồng bộ hóa hai quy trình?
- 9. Làm cách nào để thử kết quả trong lời hứa $ http.get khi kiểm tra bộ điều khiển AngularJS của tôi?
- 10. Chaining một số không rõ những lời hứa trong AngularJS
- 11. angularjs ng-show với biểu hiện lời hứa
- 12. Cách tốt nhất để đồng bộ hóa tác vụ không đồng bộ
- 13. AngularJS: Khởi tạo bộ lọc không đồng bộ
- 14. Làm thế nào để đồng bộ hóa hai kho Subversion?
- 15. RxJS là các sự kiện như lời hứa là không đồng bộ
- 16. Android Cách đồng bộ hóa hai tác vụ Async?
- 17. Có cách nào chung để đồng bộ hóa một phương pháp không đồng bộ không?
- 18. Có cách nào tốt hơn để kết hợp hai bộ chuỗi trong java?
- 19. Đồng bộ hóa hai mục tiêu trong Xcode 4
- 20. Đồng bộ hóa hai chuỗi với AutoResetEvent
- 21. Cách đồng bộ hóa hai kho lưu trữ git
- 22. Hủy lời hứa hoãn lại trong jQuery
- 23. Lời hứa hoạt động như thế nào trong JavaScript?
- 24. Angularjs lời hứa không được giải quyết trong kiểm tra đơn vị
- 25. Làm cách nào để đồng bộ hóa vị trí cuộn của hai div?
- 26. Làm cách nào để đồng bộ hóa hai Cơ sở dữ liệu Oracle?
- 27. đồng bộ hóa (this) vs đồng bộ hóa (MyClass.class)
- 28. Thư viện Python tốt để đồng bộ hóa iPod
- 29. Làm cách nào để đồng bộ hóa cuộn của hai hộp văn bản nhiều dòng?
- 30. Làm cách nào để đồng bộ hóa hai hoặc nhiều máy chủ Mercurial?
Bạn có thể muốn xem ['$ q.all'] (http://docs.angularjs.org/api/ng.$q) và [' $ q.when'] (http://docs.angularjs.org/api/ng.$q). –