У меня есть 3 веб-запроса, которые делают через $ http, это ходатайство находится в функциях (function1()
, function2()
, function3()
). Я хотел бы настроить порядок выполнения всех этих запросов.
object.function1().then(function() {
//result of petition $http of function1();
});
object.function2().then(function() {
//result of petition $http of function1();
});
object.function3().then(function() {
//result of petition $http of function2();
});
они все пытаются работать одновременно. некоторые запросы занимают больше времени, чем другие, потому что они получают больше объектов JSON. Я хочу запустить, чтобы начать с:
function1(); //first
function2(); //second
function3(); //three
Вызовите функции внутри другой функции обратного вызова следующим образом:
object.function1().then(function() {
//result of petition $http of function1();
object.function2().then(function() {
//result of petition $http of function1();
object.function3().then(function() {
//result of petition $http of function2();
});
});
});
Вам необходимо правильно использовать метод .then()
:
object.function1().then(function(result) {
//result of petition $http of function1();
return object.function2()
}).then(function (result) {
//result of petition $http of function2();
return object.function3();
}).then(function (result) {
//result of petition $http of function3();
});
Вы можете попробовать с этим.
$http.get('URL1').success(function(data){
$http.get('URL2').success(function(data){
$http.get('URL3').success(function(data){
console.log('Done');
}
}
});
.then
обработчик.