AngularJS:返回承诺拒绝

Mat*_*ima 3 angularjs

我正在使用FactoryAngularJS,这是这样的:

if (href) {
    return $http({ method: method, url: item.href });
}
else {
    // needs to return a failed promise
}
Run Code Online (Sandbox Code Playgroud)

因此,如果条件为真,那么我需要做的就是调用$http承诺,这意味着谁在使用我的工厂正在期待一个承诺.问题是:如果条件为假,我需要返回被拒绝的承诺.有没有办法做到这一点?

谢谢!

dfs*_*fsq 5

返回$q.reject()被拒绝的承诺对象:

if (href) {
    return $http({ method: method, url: item.href });
}
else {
    return $q.reject();
}
Run Code Online (Sandbox Code Playgroud)

您还可以指定拒绝原因,即$q.reject('Invalid URL').