Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 Jquery延迟+;AJAX_Javascript_Jquery_Ajax_Jquery Deferred - Fatal编程技术网

Javascript Jquery延迟+;AJAX

Javascript Jquery延迟+;AJAX,javascript,jquery,ajax,jquery-deferred,Javascript,Jquery,Ajax,Jquery Deferred,有人能告诉我为什么这不会更新AJAX中的数据对象吗?如果我在geojson中有多个功能,那么在循环使用所有geojson功能时,它往往只保存一个功能记录。因此,如果geojsonFeatures有3条记录,则会将3条记录推送到ajaxDeferred中,但所有三条记录的数据都相同 数据:{ id:UpdatedLayerGojsonid, 表:更新的LayerGeoJSONTable, geom:更新的图层几何 } var geojsonFeatures=geojson.features; va

有人能告诉我为什么这不会更新AJAX中的数据对象吗?如果我在geojson中有多个功能,那么在循环使用所有geojson功能时,它往往只保存一个功能记录。因此,如果geojsonFeatures有3条记录,则会将3条记录推送到ajaxDeferred中,但所有三条记录的数据都相同

数据:{ id:UpdatedLayerGojsonid, 表:更新的LayerGeoJSONTable, geom:更新的图层几何 }

var geojsonFeatures=geojson.features;
var ajaxDeferred=[];
对于(var a=0;a
您在代码中的什么地方推送记录?您在哪里/如何使用
ajaxDeferred
数组?不要使用所有这些变量
var geojsonFeatures = geojson.features;
var ajaxDeferred = [];

for(var a = 0; a < geojsonFeatures.length; a++){
updatedLayerGeojson = geojsonFeatures[a].geometry;
        updatedLayerGeojson.crs =  {
          "type": "name",
          "properties": {
            "name": "epsg:4326"
            }
         };
        updatedLayerGeojsonGeometry = JSON.stringify(updatedLayerGeojson);
        updatedLayerGeojsonId = geojsonFeatures[a].properties.gid;
        updatedLayerGeojsonTable = geojsonFeatures[a].properties.layer_table;

        ajaxDeferred.push(
            $.ajax({
                url: window.location.origin + '/csrfToken',
                success: function(response) {
                      $.ajax({
                          url: '/maplayers/saveEditedLayerRecord',
                          type:"post",
                          data: {
                            id: updatedLayerGeojsonId,
                            table: updatedLayerGeojsonTable,
                            geom: updatedLayerGeojsonGeometry
                          },
                           beforeSend: function(xhr, settings){
                              xhr.setRequestHeader('X-CSRF-Token', response._csrf);
                          },
                          success: function(data){
                            if(data){
                                numberOfEditedLayersCompleted++;
                                if(numberOfEditedLayers == numberOfEditedLayersCompleted){
                                    removeLayers();
                                    editableLayers.clearLayers();
                                    editedLayer = false;
                                    numberOfEditedLayers = 0;
                                    numberOfEditedLayersCompleted = 0;
                                }
                            }

                          },
                          cache: false
                        });
                    }
                })
        );