В angularjs, как вы ловите ошибку для ngStorage, когда localStorage заполнен?
Я сохраняю несколько предметов в localStorage
с помощью ngStorage
в AngularJS, но если пользователь localStorage
заполнен, как я могу поймать эту ошибку и позволить JavaScript продолжать работать?
try {
$scope.$storage.gridObject = $scope.gridConfig.data;
$scope.$storage.dataStored=true;
}
catch(err) {
//failed to save to local storage, try clearing localStorage for IAP and throw error
$scope.$storage.dataStored=false;
$scope.$storage.$reset({
dataStored: false,
gridObject: {}
})
console.log('error occured message');
}
1 ответ
Решение
Возможно, это не относится к AngularJS, вы сможете получить подробную информацию для вашего localStorage
со следующим.
var allocated = 5; // default 5MB allocation
var total = 0;
for(var x in localStorage) {
var amount = (localStorage[x].length * 2) / 1024 / 1024;
total += amount;
}
var remaining = allocated - total;
console.log( 'Used: ' + total + ' MB');
console.log( 'Remaining: ' + remaining + ' MB');
JSFiddle Link - демо
Посмотрите этот ответ также для подхода, управляемого исключениями. Приведенный ответ расскажет, как вы можете форсировать исключение, за которое вы, вероятно, поймаете Приведенный выше код может позволить вам выполнить / обойти определенную логику, если у вас заканчивается.