2016-10-03 3 views
2

for 루프를 사용하여 배열에서 값을 가져 와서 JSON url에 삽입하려고합니다. 여기에 코드가 있습니다.배열을 반복하고 JSON url에 값을 삽입하십시오.

myConnector.getData = function(table, doneCallback) { 
    datasetWebId.forEach(function(v) { 
     var webId = (v); 
     $.getJSON("https://www.twdc/api/" + webId + "/recorded?starttime=*-3d&endtime=*", function(resp) { 

      tableData = []; 
      resp.Items.forEach(function(item) { 
       item.Items.forEach(function(subItem) { 
        tableData.push({ 
         'name': item.Name, 
         'Timestamp': subItem.Timestamp, 
         'Value': subItem.Value, 
         'Path': item.Path 
        }); 
       }); 
      }); 

     }); 
     table.appendRows(tableData); 
     doneCallback(); 
    }); 

}; 

실행하면 첫 번째 루프에 도달하고 나머지는 건너 뜁니다. datasetWebId 배열에는 값이 있으므로 문제는 없습니다. 누군가 뭔가 다른 것을 발견 할 수 있습니까?

+1

json을 표시하십시오 –

+0

Json은 루프가있는 경우와 WebID가 irk에 삽입되는 방법에 문제가 없습니다. 그것 없이는 작동하기 때문에. @PradyutManna – llerdal

+0

콘솔에 오류가 있습니까? @llerdal –

답변

2

datasetWebId 배열의 첫 번째 항목 끝에 doneCallback을 호출 했으므로 반복되지 않습니다.

0

여기에 몇 가지 사항이 있습니다. 첫째, "datasetWebId"가 무엇인지 전혀 알 수 없습니다. 이 배열은 각 AJAX 요청을 보내려는 반복문이지만 의심 할 여지없이 끝나면 실제로 실행하기 전에 길이가 console.log이되어야합니다. 실제로 반복 할 데이터가 있는지 확인해야합니다.

초. 중첩 된 for-loops가 3 개 (!) 있습니다. 이상하게도 과도하게 중첩되는 주요 증상 중 하나 인 이상한 데이터 유출 문제가 있다는 것은 전혀 놀라운 사실이 아닙니다. 걱정하지 마라, 우리는 모두 거기에 있었다. 독립적으로 테스트 할 수있는 별도의 함수로 모든 함수를 던지고 한 번에 하나씩 실행하십시오. 그리고, AJAX의 심볼 화재 반응이 제대로 작동 할 때까지는 아무 것도하지 마십시오.

좋습니다. 가능한 경우 해당 배열에 대한 자세한 정보를 게시하십시오. 정리 된 해석을 보내 드리겠습니다.

관련 문제