【发布时间】:2014-11-05 22:14:55
【问题描述】:
我正在用 Angular js 为我的应用程序编写 ItemProvider。
我选择了一项服务。
app.factory('ItemProvider', function($http) {
var url = "http://localhost:7888/api.php/json?";
return {
get_data: function() {
$http.get(url).
success(function(data,status,headers,config) {
json = data;
console.log("app returned ok");
console.log(json);
callback(json);
}).
error(function(data,status,headers,config) {
console.log("Error getting data from app!");
json = data;
callback(json);
});
callback = function(json) {
console.log("callback");
return json;
}
console.log("already done");
}
};
});
当然,这里发生的是get_data 在通过$http 实际调用后端之前立即返回...
我如何正确地拥有一个从后端返回数据的get_data 函数?我尝试添加一个回调(参见上面的代码),但我意识到当它被调用时,get_data 也已经完成了......
【问题讨论】:
-
“我如何正确地拥有一个从后端返回数据的 get_data 函数?” 这是不可能的。
get_data要么必须接受回调,要么返回承诺。
标签: javascript angularjs function asynchronous