2013-03-22 3 views
-1

Ext.Ajax.request의 성공을위한 기능이 있습니다. 이 함수는 JSON 저장소로 변수를 반환해야합니다. 내 코드는 다음과 같습니다Ajax 요청 성공 범위

gridplatos.getStore().each(function(r){ 
    var store; 
    Ext.Ajax.request({ 
    params:{ 
     grado: r.get('grado'), 
     menudiario: r.get('menudiario'), 
     plato: r.get('plato'), 
     transCode: Ext.getCmp('transCode').getValue() 
    }, 
    url: 'src/Drivers/AlumnosPlatoArmado/', 
    method: 'GET', 
    success: function(response,store){ 
     store = Ext.create('KMA.store.AlumnosPlatoArmado',{}).load(); 
    } 
    }); 
    console.log(store); 
} 

그러나, CONSOLE.LOG (저장) 반환 "정의되지 않은". 어떤 생각?

답변

0

ajax가 비동기 함수 호출이기 때문에 이는 요청이 서버로 보내지면 클라이언트는 서버 응답을 기다리지 않고 다음 명령문을 계속 실행한다는 것을 의미합니다. 귀하의 경우에는

는 아약스 요청이 다시 console.log(store);이 시간 store의 그 시점에서 실행되는 서버의 응답이 값 undefined을 가지고 그 전에 src/Drivers/AlumnosPlatoArmado/로 전송됩니다. Ajax 요청이 성공적으로 완료되면 등록 된 성공 핸들러가 호출되어 store 값을 설정합니다.

비동기 실행 환경에서 비동기 메소드에서 반환 된 값의 모든 작업은 등록 된 콜백 메소드에서만 수행해야합니다.

+0

감사합니다. 어떻게 이것을 해결할 수 있습니까? – ramiromd

+0

우리가 시도 할 수있는 문제의 완전한 맥락을 줄 수 있다면, 가게와 함께 무엇을하고 싶은가요? –

+0

다른 가게 (B)를 새로 고치는 가게 (A)가 있습니다. 하지만 지금은 두 가게와 함께 txt 파일을 만들어야합니다. 예 : "A의 라인 - B의 라인 - A의 라인 - 라인 B ..." – ramiromd