在Angular.js

时间:2016-06-02 04:40:32

标签: javascript angularjs promise angular-promise

我有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

3 个答案:

答案 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();
        });
    });

});