【发布时间】:2017-09-02 02:22:02
【问题描述】:
我有一个返回 $http GET 承诺的函数(承诺成功/错误由调用者处理)。我需要的是,在特定条件下,即使 $http 成功,也要返回错误(调用者会将此条件视为被拒绝的承诺)。
在这个 plunk 中,我尝试返回 $q.reject() 但这不起作用。
http://plnkr.co/edit/iC3Wb1PBUFrXgPbTJyU0?p=preview
这是 JavaScript:
app.controller("ctrl", function($scope, $http) {
var getUrl = function() {
var config = {
method: 'GET',
url: 'some.txt'
};
var x = 1; // if x == 1 the http should fail
return $http(config).success(function(response, status, headers, config) {
console.log(response);
if (x == 1) return $q.reject('error');
}).error(function(data, status, headers, config) {});
};
var init = function() {
var promise = getUrl();
promise.then(function() {
alert('OK');
}, function() {
alert('error');
});
};
init();
});
有什么想法吗?
【问题讨论】:
标签: javascript angularjs