잠깐 동안 JavaScript에서 배열을 반환하는 방법에 대한 질문은 Stack Overflow에서 보았습니다. 단 하나의 대답은 내 코드에서 작동하지 않습니다. 항상 '정의되지 않음'을 반환합니다.(JavaScript) 배열을 반환 할 수 없습니다.
이 코드의 중요한 부분은 다음과 같습니다
function VisualizadorIzquierdo() {
// some stuff here
this.dibujar = function() {
var datos = obtenerDatos(0);
alert(datos); //<--- This always returns 'undefined'
// other stuff here
}
// more stuff here
}
function obtenerDatos(id) {
var xmlhttp = ConstructorXMLHttpRequest();
if(!xmlhttp) alert('Error: No se pudo crear el objeto XMLHttpRequest');
else {
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4)
{
alert(xmlhttp.responseText); //<--- This returns '[1,2,3,4]'
return xmlhttp.responseText;
}
}
xmlhttp.open('GET', rutaLector + '?archivo=' + archivos[id], false);
xmlhttp.send(null);
}
}
I'v이 새 Array() 및 새 개체()로 변수 datos을 정의했습니다. 또한 내가 개체를 반환하려고 해요 (같은 은 { "arreglo"[1,2,3,4]})하는 새로운 배열을 정의() 및 새 개체()내 obtenerDatos (ID) 기능 등, syncronic 및 asyncronic 사이에 변화 ...
그러나 반환 때마다 '정의되지 않은'
그래서c를, 어떻게 확실히 함수에서 배열을 반환 할 수 있습니다?
고맙습니다. :)
_asynchronous_ 호출에서 반환 된 데이터가 유효하다고 가정하면 코드가 반환되기 전에 경고가 실행되므로 정의되지 않은 것입니다. – j08691
@ j08691 알림을 삭제해도 작동하지 않습니다. ( – Warren