我有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
答案 0 :(得分:5)
您需要正确使用.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();
});
答案 1 :(得分:0)
你可以试试这个。
$http.get('URL1').success(function(data){
$http.get('URL2').success(function(data){
$http.get('URL3').success(function(data){
console.log('Done');
}
}
});
答案 2 :(得分:-1)
调用其他函数回调中的函数,如下所示:
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();
});
});
});