Angular http调用不是异步执行的

时间:2017-04-25 19:35:10

标签: javascript angularjs

我认为我对如何以及何时实施.then和/或.success函数感到困惑。

以下是功能,

$scope.getResults = function(choice){

    if(choice == 1){
        url = firstUrl/;
    }else{
        url = secondUrl/;
    }

    var data = {some: info};

    $http.post(url, data).then(function(response){

        $http.get('profileUrl/'+response.data.contactId[0])
       .then(function(contactResponse){
            //set contactResponse to approproate $scope variables
        });

    });

    if(choice == 1){
        choice = 2;
        $scope.getResults(2);
    }

}

对上述函数的调用为$scope.getResults(1)firstUrl仅返回50个结果,这非常快,但secondUrl加载100K结果,这非常耗时。出于某种原因,profileUrl在我收到secondUrl的回复之前不会返回结果。

你能告诉我我在这里可以做些什么,以便profileUrl返回结果而不会等待来自secondUrl的回复?

1 个答案:

答案 0 :(得分:0)

$http.post('controller/url',$.param({val: value}),config)
        .success(function (response){
            console.log(response);
        })