Синхронный NativeProcess в AIR с использованием JavaScript - PullRequest
1 голос
/ 27 мая 2011

Я создаю приложение в AIR, используя JavaScript. Многие из моих функций требуют текста, возвращаемого нативным процессом. Но собственный процесс в AIR выдает значения асинхронно, вызывая функцию для события STANDARD_OUTPUT_DATA. Есть ли способ получить это значение синхронно, как ожидание функции, пока не закончится ее выполнение.

Вот пример кода:

   var textReceived;

   function callbackFunction()
   {
       textReceived= getTextfromProcess(); 
   }

   function chkProc()
   {
        process.addEventListener(STANDARD_OUTPUT_DATA, callbackFunction);
          //This is AIR's function which give text asynchronously 
   }
   function sqlExc(sql)
   {

   chkProc();
       //wait here before returning
   return   textReceived;
   }

Поскольку JavaScript работает в одном потоке, я не могу использовать бесконечный цикл с разрывом. Есть ли способ достичь этого?

1 Ответ

1 голос
/ 27 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...