2011-03-30 6 views
0

티타늄 SDK 버전 : 1.6.1
아이폰 SDK 버전 : 4.2Appcelerator의 JavaScript 파일. 콜백 함수에서 데이터 추출

내가 티타늄 Appcelerator 응용 프로그램을 개발하고있다.

테이블 뷰 (http://pastie.org/1734554)에 대한 섹션을 반환하는 별도의 파일에서 함수를 얻었으며 주 파일에서 콜백을 사용하여이 함수를 호출했습니다. 콜백 데이터를 추출하여 배열 (http://pastie.org/1734548)에 추가 할 수 있기를 원하지만 해당 데이터를 호출 함수에서 가져올 수 없습니다. 어떻게 된거 야?

답변

0

당신은 AJAX의 비동기 성질을 경험하고 있습니다. 콜백 함수 내에서 경고를 이동하고 예상대로 작동합니다 :

var rowData = []; 

rowData.push("THIS ADDS TO THE ARRAY"); 

loadPhones(function(data) { 
    rowData.push(data); 
    alert(rowData); 
}); 

당신이 loadPhones에 함수를 통과해야하는 이유 당신은 당신이있는 동안 브라우저가 잠 그려는 없다는 것입니다 전화 목록을 검색합니다. 당신이 그것을 작성한 방식으로, 익명의 콜백 함수는 alert 문장에 도달 할 때까지 실행되지 않았습니다.

loadPhones 콜백 내부에서 검색된 데이터로 수행해야하는 작업을 수행하십시오.

+0

아 좋아, 네가했던 것처럼 함수 내부에서 경고를 할 수 있지만, 그렇지 않으면 사용할 수 있도록 rowData 배열로 데이터를 푸시해야한다. 쓸모가 없다. 이것을 할 방법이 없습니까? –

+0

@JonathanClark : 물론, 그것은 이미 발생합니다. 배열에 액세스 할 때 문제가 _ 생합니다. 'loadPhones' 바로 다음에이 코드를 넣으면 콜백이 실행되지 않기 때문에 아직 액세스 할 수 없습니다. 언제 데이터에 액세스해야합니까? – Martijn