AngularJS拒绝成功回调的承诺

时间:2015-02-20 10:40:18

标签: javascript angularjs promise angular-promise

我正在使用$q来检查两个资源是否正确。查询已经解决或未解决。像这样:

$q.all([
    ResourceA.get({}, function success(data) {
        console.log("got A");
    }).$promise,
    ResourceB.get({}, function success(data) {
        console.log('got B');
    }).$promise
]).then(function() {
    console.log("done");
});

问题是,data我在每个success函数中收到的$q.all([ ResourceA.get({}, function success(data) { if (data.key !== "secret") { // REJECT THE PROMISE } }).$promise, ResourceB.get({}, function success(data) { console.log('got B'); }).$promise ]).then(function() { console.log("done"); }); 可能不是我想要的,我想检查是否是这种情况然后拒绝记者承诺。像:

{{1}}

这可能吗?怎么样?有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

这实际上比承诺链上的评论更简单。如果你想链接 - 你需要使用then

$q.all([
    ResourceA.get({}).$promise.then(function(data){ // chain a then
        if (data.key !== "secret") return $q.reject("Invalid key");
        return data; // return same value if ok
    }),
    ResourceB.get({}, function success(data) {
        console.log('got B');
    }).$promise
]).then(function() {
    console.log("done");
});
相关问题