2012-12-04 3 views
0

배열 (함수 외부에 정의 됨)이 함수로 채워지지 않는 이유를 다른 사람이 설명 할 수 있습니까? 그래서 다른 기능 배열이 함수로 채워지지 않습니다.

내 코드

을 위해 그것을 사용할 수 있습니다 쿼리가 비동기이기 때문에 익명 함수의 코드가이 중 일부입니다 어떤 함수에서 호출되지 않습니다

var points = []; 
var eilutes = []; 
var query = connection.query('SELECT * FROM ping', function(err, eilutes){ 

    //if (err) throw err; 

    for (var i in eilutes){ 
     points.push(eilutes[i]); 
    } 
    console.log(points[1]); //// Result is returned 
    console.log(eilutes[1]); //// Result is returned 
}); 
console.log(points[1]); //// promts: undefined 
console.log(eilutes[1]); //// promts: undefined 
+5

'query()'는 비동기 적이기 때문에 콜백 매개 변수가 있습니다. – jbabey

+2

또한,'eilutes'는 객체'{}'가 아닌 배열'[]'입니다. 배열을 반복 할 때 for-in을 사용하지 마라! 대신 증분'for' 루프를 사용하십시오. 'for (var i = 0; i

+0

나는 다음과 같이 선언했다 :'eilutes = [];'배열을 콜백하는 방법? – sauletasmiestas

답변

0

때문입니다.

+0

@bbabey 글쎄, 내가 실수로 전체 코드를 보여주지 않았다고 생각한다. 내가 쿼리 결과를 코드로 변경 한 후 두 개의 쿼리를 수행하고 있는데, 두 개를 여러 쿼리 문 (매우 안전하지 않음)으로 관리했습니다. 콜백은별로 좋은 생각이 아닙니다. – sauletasmiestas

관련 문제