关闭 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
我有两个事件侦听器用于激活online
和offline
停用另一个服务,不知道它是否与此错误有关。
每当我在发送照片时切断 Internet 连接时,更新数据库行的代码就会停止运行,尽管照片已经到达网络。
经过一些调试,当我切断互联网连接时,似乎前几个请求都$http
没有到达,好像它们被“切断”并变成了僵尸一样。如果我不切断互联网,一切正常。then
catch
我觉得这很奇怪,因为除了它$http
本身之外的所有东西都不需要互联网连接,为什么它会停止呢?
我怎样才能防止它停止?