2

关闭 Internet 连接会停止 AngularJS (Ionic v1) 正在做的事情

我有这个代码:

$ionicLoading.show({'template': 'loading'});

var promisesArray = [];

angular.forEach(photoCollection, function(photoPayload){
    var promise = sendPhotoInHttpRequest(photoPayload);
    promisesArray.push(promise);
});

$q.all(promisesArray).then(function(){
    doOtherStuff();
    $ionicLoading.hide();
});
// the end

function sendPhotoInHttpRequest(payload) {
    // used to force wait for counter to increase
    var defer = $q.defer();

    $http({
        'url': url,
        'method': 'POST',
        'data': JSON.stringify(payload)
    }).then(function(res){

        // whenever I cut off Internet connection 
        // the below code stop running 
        // but the photo already reached the server
        updateDatabaseSetPhotoAsSent(payload.id).then(function(res){

            increaseCounter(counterObj);
            defer.resolve('ok');

        }).catch(function(e){
            defer.reject(e);
        });

    }).catch(function(err){
        defer.reject(err);
    });

    return defer.promise;
}

app.js我有两个事件侦听器用于激活onlineoffline停用另一个服务,不知道它是否与此错误有关。

每当我在发送照片时切断 Internet 连接时,更新数据库行的代码就会停止运行,尽管照片已经到达网络。

经过一些调试,当我切断互联网连接时,似乎前几个请求都$http没有到达,好像它们被“切断”并变成了僵尸一样。如果我不切断互联网,一切正常。thencatch

我觉得这很奇怪,因为除了它$http本身之外的所有东西都不需要互联网连接,为什么它会停止呢?

我怎样才能防止它停止?

4

0 回答 0