2014-12-14 3 views
0

나는 게임을 코딩하고있다. game.start()이 수행중인 AJAX 호출 때문에 game.start()이 완전히 실행 된 후에 loadGameDiv으로 전화해야합니다. 콜백 함수를 사용하려고하지만 loadGameDiv에 전달 된 게임 개체에 여전히 일부 매개 변수가 없습니다.콜백 함수가 정확합니까?

var game = { 
    stage: [], 
    start: function(callback){ 
      this.stage = Stage.makeStage(); 
      callback(game); 
    }, 

var gameStart= function(){ 
    game.start(callback); 

    function callback(game) { 
    loadGameDiv(game); 
    } 
} 

var loadGameDiv = function(gameObject) { 
    console.log(gameObject.stage[0]); 
} 
+0

'Stage.makeStage()'가 Ajax 요청을하고 있습니까? 그렇다면 Ajax 요청이 끝나기를 기다리지 않고 바로 콜백을 호출 할 것입니다. 'makeStage()'는 콜백을 처리 할 필요가있다. –

+1

게임을 지나치는 것이 이상하게 보입니다 ... – epascarello

답변

0

아약스 호출이 없습니다. Stage.makeStage()이 ajax 호출을 수행하는 경우 콜백을 한 후에는 응답 후 실행을 보장하지 않습니다. ajax 호출에 콜백을 전달해야합니다.

또한 callback(game);은 사용자가 원하는 것을하지 않을 수도 있습니다. thisloadGameDiv()에 전달 하시겠습니까?

관련 문제