为什么我的承诺不能在角度js中工作
Why isnt my promise working in angular js?
下面是我的角度控制器,但在其中,我的承诺似乎不起作用。 控制台.log 没有显示响应,也没有显示警报。
myapp.controller('contrl6', ['$scope','$q','$localStorage','$http',
function ($scope,$q,$localStorage,$http) {
$scope.myXhr = function(){
var q = $q.defer();
$http({
method: 'GET',
url: '/api/session_data'
})
.success(function(response){
console.log(response);
q.resolve('request successful');
})
.error(function(response){
console.log("error");
q.reject('ERROR');
});
return q.promise;
}
console.log("hi");
var myPromise = $scope.myXhr();
myPromise.then(function(resolve){
alert(resolve);
console.log(resolve);
}, function(reject){
alert(reject);
console.log(reject);
});
}]);
弃用通知
$http
旧版承诺方法.success
和.error
已被弃用。请改用标准.then
方法。1
$scope.myXhrPromise = function(){
return (
$http({
method: 'GET',
url: '/api/session_data'
}).then (function onFulfilled (response) {
console.log(response.data);
//return data for chaining
return response.data;
}).catch (function onRejected (response) {
console.log(response.status);
//throw to chain rejection
throw response;
})
);
};
> 在myxhr
内部,没有任何东西与$http
的结果联系在一起。 不要担心创建新承诺,因为$http
已经返回了一个承诺:
$scope.myXhr = function(){
return $http({
method: 'GET',
url: '/api/session_data'
})
.then(function(response){
return response;
})
.catch(function(response){
throw new Error('ERROR');
});
}
我将您的代码复制/粘贴到 Plunkr 中,一旦我正确连接它,它就可以正常工作。
Plunkr 示例在这里
正如邓肯所说,确保使用ng-app和ng-controller正确连接它。如果您可以使用正在使用的HTML标记更新您的问题,也许我们可以进一步提供帮助。
相关文章:
- 如何使用多个jquery版本,以便Responsive Slides.js工作
- 无法使FlowType.js工作
- Intellisense没有;t在VS2013中为JS工作
- 有人能解释一下如何#ifeq吗/section键使用handle.js工作
- 使dropzone.js工作的傻瓜指南
- 如何获得侧边栏.js工作
- 如何在没有 Web 服务器的情况下做出响应.js工作
- 创建JS工作,但不显示工具栏
- 无法获得简单的敏捷.js工作
- 通过有错误的 Ajax-Request 打印出 HTML 会阻止进一步的 JS 工作
- Angular JS-工作函数中的“错误:[$interpole:interr]Can't interpole:
- 推特's Bootstrap Popover:赢得't工作,即使其他JS工作正常
- 可以'不要让typeahead.js工作
- 无法让Quicksand.js工作
- 通过Grunt使用Node.js工作SASS预处理器
- 可以'不要让popcorn.js工作
- 不能让Bootstrap modal.js工作
- 我怎么能与wordpress中的wow.min.js工作
- 无法让haxe-pixi.js工作-我得到一个空白的白色屏幕
- 不能让impress.js工作