我想从一个函数传递数据,数据成功返回成功响应。但是我无法从函数本身返回数据。
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
。
请帮忙。谢谢。
答案 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)
我想是因为数据是在函数内部定义的,因此无法从外部访问。
如果您在函数外部声明数据并仅在函数内部设置其数据,则可以从外部访问该数据。