2012-09-01 4 views
0

is를 true로 설정해야하는 경우 "called"변수가 false입니다. 왜 그런가요? 플러그인에서 호출 할 때 true로 설정되지만 클로저 외부에서는 false로 유지됩니다. 조금은 당황 스럽습니다. 모든 포인터에 미리 감사드립니다.왜이 (javascript) 클로저가 실패합니까?

(function() { 
    module("when InitializedApplication() is called"); 
    test("it should call the success function", function() { 
    // arrange 
    $("#qunit-fixture").append(
     '<script id="events-catalog-view-template"' + 
     '  type="text/html"'+ 
     '  src="_events-catalog.view.html">' + 
     '</script>' + 
     '<div id="events-catalog-view-container"' + 
     '  data-bind="template: {' + 
     '    name="events-catalog-view-template" ' + 
     '    afterRender="tpw.mediator.eventscatalog.setupViewDataBinding" ' + 
     '   }"' + 
     '</div>' 
    );    

    var called = false; 

    // act 
    var init = TPW.InitializeApplication(); 

    init({ 
     logLevel: "debug", 
     success: function (successfullResolution) {        
      called = true; 
     }, 
     error: function (failedResolution) {        
     } 
    }); 

    // assert     
    ok(called, "success function called"); 
    });  
})(); 

답변

0

성공 콜백 전에 qunit ok() 함수가 호출되고있었습니다. 비동기 문제.

관련 문제