Angular:如何在$http请求成功后才返回
Angular: How to defer return until after the $http request succeeds
在我的主模块中,我想创建一个解析json文件并将内容推送到数组的服务,之后我想服务有数组返回,所以它很容易被任何控制器访问。问题是函数在$http请求完成之前运行,所以它总是返回一个空数组
dashModule.factory('dataFetch', function($http) {
var emailArray = [];
$http.get('../data/emails.json').success(function log(obj) {
for (var i = 0; i < obj.length; i++) {
emailArray[i] = obj[i];
}
});
return {
test: function() {
return emailArray;
}
};
});
使用承诺,如:
dashModule.factory('dataFetchService', function($http) {
var myReq = function() {
return $http.get('../data/emails.json').then(function(response){
return response.data;
});
};
return { myReq: myReq };
});
和
function getMyReq($scope, dataFetchService) {
var myReqPromise = dataFetchService. myReq();
myReqPromise.then(function(result) {
console.log(result);
});
}
相关文章:
- 成功回调永远不会被JSONP请求调用
- ajax请求成功,但可以'我看不到我的数据
- EmberJS:在成功处理请求时解决承诺
- 使 ajax 请求和成功数据显示在 id <选择>选择>部分中
- 如何在alt.js中使用源成功请求后更新状态
- 如何根据ajax get请求的成功/失败在适当的范围内更改javascript变量
- 在请求成功时使用javascript选择一个选项
- 我的Ajax请求返回成功,但脚本不是't已执行
- 无法解析来自 jquery 中成功的 HTTP HEAD 请求的标头
- 如何监视 iframe 中请求的成功或失败
- 在成功函数之外使用来自 AJAX 请求的数据
- jQuery AJAX 请求事件 - 完成,失败,成功
- 为什么 Ajax 请求成功,但最终以失败回调告终
- AngularJS:在成功的HTTP请求后更新指令范围
- 如何恢复 ajax 中按钮的初始值请求成功
- 如何在 ajax 请求成功后禁用点击事件
- jQuery ajax 请求:如何在成功函数中访问发送的数据
- 在成功的 XHR 请求中相当于以下内容
- AJAX成功请求"消息文本"返回显示
- 如何在Javascript成功请求JSONP后正确打印JSON对象