Javascript 编辑本地存储的多个ajax回调函数
我有一个服务“UserData”,它发送多个http请求。对于每个请求的成功处理程序,调用一个函数(在控制器中)。此函数打印出本地存储中的所有内容(本例中假设为5项),并将其全部删除 根据我对javascript的理解,一切都是在一个线程中执行的。这意味着,即使可能同时调用多个回调,它们也将按顺序(逐个)处理。现在,当第一个回调循环通过localStorage并删除所有项目时,我希望所有后续回调都不会从localStorage打印任何内容,因为所有项目都应该已经删除 但当我测试这个理论时,每次回调都会打印出本地存储中的所有5项。这可能更像是一个javascript问题,而不是一个角度问题,但任何洞察都将不胜感激 服务:Javascript 编辑本地存储的多个ajax回调函数,javascript,ajax,angularjs,asynchronous,angular-services,Javascript,Ajax,Angularjs,Asynchronous,Angular Services,我有一个服务“UserData”,它发送多个http请求。对于每个请求的成功处理程序,调用一个函数(在控制器中)。此函数打印出本地存储中的所有内容(本例中假设为5项),并将其全部删除 根据我对javascript的理解,一切都是在一个线程中执行的。这意味着,即使可能同时调用多个回调,它们也将按顺序(逐个)处理。现在,当第一个回调循环通过localStorage并删除所有项目时,我希望所有后续回调都不会从localStorage打印任何内容,因为所有项目都应该已经删除 但当我测试这个理论时,每次回
app.factory('UserData', ['$http',
function($http) {
return {
save: function(data, apiEndpoint, scope) {
$http({method: 'PUT', url: apiEndpoint,
headers: {
'Content-Type': 'application/x-www-form-urlencoded' },
data: data}).
success(function(data, status, headers, config) {
scope.processFailedQueue();
}).
error(function(rdata, status, headers, config) {
});
}
};
}
]);
控制器:
function baseFunctionController($scope, $location, $route, $http, contentService, UserData) {
$scope.processFailedQueue = function() {
for (var i = 0; i < localStorage.length; i++){
console.log(localStorage.key(i));
}
for (var i = 0; i < localStorage.length; i++){
localStorage.removeItem(localStorage.key(i));
}
}
}
function-baseFunctionController($scope、$location、$route、$http、contentService、UserData){
$scope.processFailedQueue=函数(){
for(var i=0;i
只是一个想法:
for (var i = 0; i < localStorage.length; i++){
localStorage.removeItem(localStorage.key(i));
}
for (var i = localStorage.length; i--; ){
localStorage.removeItem(localStorage.key(i));
}