从http post返回函数内部的数据

时间:2016-07-05 15:31:25

标签: angularjs

我想从一个函数传递数据,数据成功返回成功响应。但是我无法从函数本身返回数据。

function getStatusPublished(dating, product) 
{
    var datas = "";

    var success = function(response, status, headers, config){
      datas = response;
    }

    var error = function(error, status, headers, config){
      datas = "error";
    }

    var cdnss = "htttp://application_ajax";
    $http.post(cdnss+"&pblishDateVacan="+dating+"&ProjectID="+product)
    .success(success).error(error);

    console.log(datas);
}

console.log中,它只是说undefined

请帮忙。谢谢。

2 个答案:

答案 0 :(得分:1)

$http.post方法返回promise;不是数据。

要返回承诺,只需使用return statement

function getStatusPublished(dating, product) {
    var url = "htttp://application_ajax";
    var postData = {};
    var params = {
      pblishDataVacan: dating,
      ProjectId: product
    };
    var config = { params: params };
    var promise = $http.post(url,postData,config);
    //return promise
    return promise;
}

要从承诺中获取数据,请使用.then方法:

var promise = getStatusPublished(d, p);

promise.then( function(response) {
    $scope.data = response.data;
    return response.data;
}).catch ( function(response) {
    console.log(response.status);
    throw response;
}); 

答案 1 :(得分:-1)

我想是因为数据是在函数内部定义的,因此无法从外部访问。

如果您在函数外部声明数据并仅在函数内部设置其数据,则可以从外部访问该数据。