2015-01-13 4 views
0

서버에있는 메시지 (JSON 배열 형식)를 확인하는 클래스를 작성 중이므로 은 특정 메시지가 이미 로컬에 저장되어 있는지 확인합니다.AS3에서 JSON.parse가 완료 될 때까지 대기하는 방법은 무엇입니까?

서버 메시지를 구문 분석 한 다음 로컬 메시지를 확인하고 둘 사이의 값 (예 : 메시지 번호)을 비교하는 함수를 호출하고 싶습니다.

하지만 JSON 클래스에는 COMPLETE 이벤트가 없으므로 로컬 파일 (JSON 배열이기도 함)을 구문 분석하기 전에 첫 번째 구문 분석을 기다릴 정도로 코드를 느리게하는 방법을 모르겠습니다.

나는 어떻게 든 두 번째 구문 분석이 첫 번째 완성 전에 끝난 다음 실제 값을 null 개체와 비교하려고 할까봐 걱정됩니다.

두 번째 구문 분석은 첫 번째 구문 분석만큼 오래 걸리기 때문에 실제로는 실제로 발생하지 않습니다. 그러나 어떤 경우에도 더 확실하게 만들 수있는 방법이 있습니까?

+0

나는'JSON.parse()'가 동기 적이라는 것을 확신한다. – Marty

+0

감사합니다. 그게 무슨 뜻인지 이해하지 못했습니다. 첫 번째 함수에서 구문 분석이 완료되기 전에 내 두 번째 함수에 삽입 된 간단한 'trace()'가 실행된다는 것을 알았습니다. – Craig

답변

1

JSON.parse()은 동기화 작업입니다. 즉, 응용 프로그램이 계속되기 전에 완료됩니다.

var a:Object = JSON.parse('{}'); // Will always complete before; 
var b:Object = JSON.parse('{}'); 

나는 당신이 실제로 의미하는 것은 당신이 URLLoader 객체의 COMPLETE 핸들러 내 체크인을하는 것만 큼 쉽습니다 수표를하기 전에 서버에서 데이터를 사용할 수 있는지 절대적으로 확신 할 가정 당신은 JSON을 검색하는 데 사용합니다.

+0

도움이됩니다. 현재 서버에서 JSON을 검색하고로드가 완료된 후 구문 분석하고 로컬 JSON을 검색하는 두 번째 함수를 호출하고로드가 완료된 후에 구문을 분석 한 다음 값을 비교합니다. 이걸 절대 걱정할 필요가 없다는 말입니까? 나는 위의 내 의견에 주목 한 바에 의해서만 묻고 있습니다. – Craig

관련 문제