小编Fau*_*phi的帖子

AngularJS,承诺具有递归功能

我正在尝试使用AngularJS承诺/然后使用递归函数.但是没有调用then-function(没有调用error-,success-,notify-callbacks).

这是我的代码:

递归函数

loadSection2 = function() {

    var apiURL = "http://..."

    var deferred = $q.defer();

    $http({
        method: "GET",
        url: apiURL
    }).success(function(result, status, headers, config) {
        console.log(result);
        loadCount++;
        if(loadCount < 10) {
            newSectionArray.push(result);
            loadSection2(); 
        } else {
            loadCount = 0;
            deferred.resolve();
            return deferred.promise;
        }
    }).error(function() {
        return deferred.reject();
    });
    deferred.notify();
    return deferred.promise;
};
Run Code Online (Sandbox Code Playgroud)

然后

loadSection2().then(function() {
    console.log("NEW SECTIONS LOADED, start adding to document");
    addContent();
}, function() {
    console.log("ERROR CALLBACK");
}, function() {
    console.log("NOTIFY CALLBACK");
}).then(function() {
    loadScrollActive = false;
});
Run Code Online (Sandbox Code Playgroud)

我认为,至少必须得到第一个通知回调.但是没有回调.那么不使用递归函数?

javascript recursion promise angularjs

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

angularjs ×1

javascript ×1

promise ×1

recursion ×1