** 실제 해결책을 찾거나 내 스스로 할 수 없기 때문에 도움이 정말로 필요합니다. 문제는 정보를 얻을 수 없다는 것입니다. "데이터"에는 23 개의 객체가 포함되어야합니다. 문제는 모든 디버깅이 잘 작동하는 것입니다. 제발 도와주세요 !!! 나는 거의 끝이났다. 다음 콜백 또는 (기능 ...) ... 나를 위해 작동되지 않습니다. (**
function query_day2day(DateArray_){
var Fluid_id = 0;
var data_list = new Array();
//read out the select element
var e = document.getElementById("select_fluid");
var Fluid_id = e.options[e.selectedIndex].value;
//read in date
//var d = document.getElementById("datepicker");
//var date = d.value;
var dateArray = new Array();
dateArray = DateArray_;
//Bring the date array in the correct form to submit
for(i = 0; i<dateArray.length; i++)
{
var year = dateArray[i].substring(6, 10); //substring(start, end)
var month = dateArray[i].substring(0, 2);
var day = dateArray[i].substring(3, 5);
dateArray[i] = year + "-" + month + "-" + day;
//alert(dateArray[i]);
}
for(i = 0; i<dateArray.length; i++)
{
switch (Fluid_id) {
case '1':
$.getJSON(setAddress_Event() + 'liter_hour/' + Fluid_id + '/' + dateArray[i], function(data){
//data_callback(data, i); //I don´t understand this concept ;(
data_list[i] = data;
});
break;
case '2':
$.getJSON
업데이트
function getData(setAddress_Event, liter_hour, Fluid_id, dateArray){
return $.getJSON(setAddress_Event + liter_hour + Fluid_id + "/" + dateArray).then(function(data){
return {
data_list:data
}
});
}
for(var j = 0; j<dateArray.length; j++)
{
getData(setAddress_Event(), "liter_hour/", Fluid_id, dateArray[j]).then(function(returndata){
//received data!
alert(j);
data_collection[j] = returndata;
});
}
alert(data_collection); //Hier ist data_list undefined und beim returnen wird es richtig übergeben.... ohne diesem alert wird falsch übergeben.... dreck
return data_collection;
제발 도와주세요, 내가 필요로하는 모든 데이터를하지 단지 마지막. 디버깅 내가 문제가 여기 what's 알고하지는 작품 ....
멋지게 완료 한 의견을 많이 주셔서 감사합니다! 그런 전문적인 솔루션 :) 하지만 여전히 거의 같은 문제가 있습니다. for 루프가 완료되면 console.log에 다음과 같이 표시됩니다. 배열 [<3 개의 자유 위치>, 객체] 개체는 오늘부터의 데이터이므로 앞에있는 3 개의 개체가 여기에 없습니다. ?? –
실제로 문제가 있습니다. then-callback이 실행될 때까지 * j * 변수는 이미 배열 길이에 도달했기 때문에 결과는 모두 같은 배열 요소에 저장됩니다. 이를 해결하는 한 가지 방법은 루프 변수 * j *를'var' 대신'let'으로 선언하는 것입니다. 그런 식으로 각 반복에는 * j *라는 자체 인스턴스가 있습니다. 그에 따라 코드를 수정했습니다. – trincot
내가 말했듯이, 당신은 왕 이십니다! 작동합니다. 내가 100 표를 줄 수 있다면 불행히도 나는 할 수 없습니까 ?? ^^ 배열 [개체, 개체, 개체, 개체, 개체] !!!!!!! 예 –