带有角度资源的$ q.all延迟调用两次

时间:2017-08-19 12:18:38

标签: javascript angularjs

我正在开发角度1应用程序。我正在使用$q.all延迟角度资源,如下所示。原因是我需要拒绝成功回应的承诺。

然而,似乎当我实现如下时,查询正在执行两次。感谢是否有人能够确定问题以及如何解决此问题的建议。

$q.all([
    searchA(),
    searchB()
]).then(function(res) {

}, function (err) {

});

function searchA() {
    var defer = $q.defer();
    Api.searchA().$promise.then(function (res) {
        if (res && res.results) {
            defer.resolve(res);
        } else {
            defer.reject(res);
        }
    }, function (err) {
        defer.reject(err);
    });
    return defer.promise;
}

function searchB() {
    var defer = $q.defer();
    Api.searchB().$promise.then(function (res) {
        if (res && res.results) {
            defer.resolve(res);
        } else {
            defer.reject(res);
        }
    }, function (err) {
        defer.reject(err);
    });
    return defer.promise;
}

0 个答案:

没有答案