2015-01-13 4 views
0

Я пишу класс, который проверяет сообщение (в виде массива JSON) на сервере, , затем проверяет, было ли это конкретное сообщение уже сохранено локально.Как сделать AS3 ждать завершения JSON.parse?

Я хочу проанализировать сообщение сервера, а затем вызвать функцию, которая проверяет локальное сообщение и сравнивает значения между двумя (например, номерами сообщений).

Но для класса JSON нет COMPLETE-события, и я не уверен, как замедлить мой код до такой степени, что он ждет первого синтаксического анализа перед парсингом локального файла (который также является массивом JSON).

Я беспокоюсь, что каким-то образом второй синтаксический анализ может завершиться до первого, а затем попытаться сравнить реальное значение с нулевым объектом.

Это на самом деле не происходит на данный момент, потому что второй сингл занимает столько же времени, сколько и первый. Но есть ли способ сделать это более уверенным в любом случае?

+0

Я вполне уверен, что 'JSON.parse()' является синхронным. – Marty

+0

Спасибо. Я не уверен, что я когда-либо понимал, что это значит. Я заметил, что простая «trace()», помещенная в мою вторую функцию, будет выполняться до того, как синтаксический анализ будет завершен в первой функции. – Craig

ответ

1

JSON.parse() - это синхронная задача, то есть она будет завершена до того, как ваше приложение будет продолжено, например.

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

Я предполагаю, что вы на самом деле означает, что вы хотите быть абсолютно уверены в том, что данные с сервера можно, прежде чем сделать чек, который так же легко, как делать этот чек в COMPLETE обработчика в URLLoader объекта вы используете для извлечения JSON.

+0

Это помогает. В настоящее время я извлекаю JSON с сервера, анализирую его после завершения загрузки, вызываю вторую функцию, которая извлекает локальный JSON, анализирует IT после завершения загрузки и THEN сравнивает значения. Вы говорите, что мне никогда не нужно беспокоиться об этом? Я только спрашиваю из-за того, что я заметил в своем комментарии выше. – Craig

Смежные вопросы