2012-05-22 4 views
1

진실 ... 나는 구조를 수정할 수 없음을 감안하면이 문제콜백 함수 내에서 변수 내보내기 || 다시 편집

foo(function(err, a){ 
    foo.buu(function(err, b){ 
    d = x(b); 
    }); 
}); 

와 작은 스탠드를 느낀다. 변수 d에 어떻게 액세스합니까?

고려 중 ... 질문은 실제로 내 문제가이 사실을 알지 못했습니다.

var db = new Db(database, server); 
db.open(function(err, db){ 
    list = new Array(); 
    db.collectionNames(function(err, collections){ 
     collections.map(function (coll){ 
      list.push(coll.name)); 
    }); 
}); 

하지만 console.log(list); 만 반환 []을 할 때. 왜 그런지 몰라?

+0

전 세계를 대상으로합니다. –

+0

전체적으로, Null 또는 Undefined를 반환합니다. –

+0

어디에서'console.log (list)'를 넣고 있습니까? 'Db' 클래스가 어떻게 작동하는지 알지 못하기 때문에 확실하게 답하기는 어렵지만 WebSQL 또는 IndexedDB의 프록시이고 log 호출이 db.open 호출보다 낮 으면 타이밍 문제가 발생합니다 왜냐하면'db.open()'은 즉시 반환하고 콜백 함수를 비동기 적으로 실행하기 때문이다. – DCoder

답변

0

코드에있는대로 변수 d을 사용하면 전체 코드라고 가정하고 window에 연결됩니다.

따라서 액세스는 단지 d 일 수 있습니다.

+0

(또는 어떤 경우에 "ick"이라든가, "window.d") –

+0

전체적으로, Null 또는 Undefined를 반환합니다. –

+0

@AlejoNext는 그렇지 않습니다. 어떤 의미가 있습니다. 당신의 질문에 충분한 코드를 게시 했습니까? 어쩌면 우리는 뭔가를 놓쳤을지도 모른다. –