Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编辑本地存储的多个ajax回调函数_Javascript_Ajax_Angularjs_Asynchronous_Angular Services - Fatal编程技术网

Javascript 编辑本地存储的多个ajax回调函数

Javascript 编辑本地存储的多个ajax回调函数,javascript,ajax,angularjs,asynchronous,angular-services,Javascript,Ajax,Angularjs,Asynchronous,Angular Services,我有一个服务“UserData”,它发送多个http请求。对于每个请求的成功处理程序,调用一个函数(在控制器中)。此函数打印出本地存储中的所有内容(本例中假设为5项),并将其全部删除 根据我对javascript的理解,一切都是在一个线程中执行的。这意味着,即使可能同时调用多个回调,它们也将按顺序(逐个)处理。现在,当第一个回调循环通过localStorage并删除所有项目时,我希望所有后续回调都不会从localStorage打印任何内容,因为所有项目都应该已经删除 但当我测试这个理论时,每次回

我有一个服务“UserData”,它发送多个http请求。对于每个请求的成功处理程序,调用一个函数(在控制器中)。此函数打印出本地存储中的所有内容(本例中假设为5项),并将其全部删除

根据我对javascript的理解,一切都是在一个线程中执行的。这意味着,即使可能同时调用多个回调,它们也将按顺序(逐个)处理。现在,当第一个回调循环通过localStorage并删除所有项目时,我希望所有后续回调都不会从localStorage打印任何内容,因为所有项目都应该已经删除

但当我测试这个理论时,每次回调都会打印出本地存储中的所有5项。这可能更像是一个javascript问题,而不是一个角度问题,但任何洞察都将不胜感激

服务:

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));
    }