【发布时间】:2017-06-21 22:31:19
【问题描述】:
我有一个 Angular 服务,我在其中进行 http post 调用。此外,那里设置了一些常数值。最后,我使用 return 将这些数据发送到控制器,执行一些逻辑并将它们显示在视图中。
服务代码:
var apiurl = 'myurl';
var apidata = {data: 'mydata'};
var myDataPromise = httppostrequest($http, apiurl, apidata);
myDataPromise.then(function(result) {
service.datas = result;
console.log("data.name"+result);
});
return service;
httppostrequest 函数:
function httppostrequest($http, apiurl, apidata){
return $http({
method : "POST",
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
url: apiurl,
data: JSON.stringify(apidata),
timeout: 5000
});
}
请求成功并返回数据。问题是这条线
退货服务;
在将请求中的数据分配给服务变量之前执行。因此,来自 post 请求的数据甚至不会传递给控制器。
我使用过 node js,有一些方法和工具可以在需要时避免异步性质。使用 angularjs 我不明白。
【问题讨论】:
标签: javascript angularjs asynchronous