使用JavaScript在AIR中同步NativeProcess

时间:2011-05-27 09:26:24

标签: javascript asynchronous air

我正在使用JavaScript在AIR中创建应用程序。我的许多函数都需要本机进程返回的文本。但是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在单线程上运行,我不能使用无限循环和break。 有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

NativeProcess没有阻塞(同步)方法。 BTW,无限循环在这里没有帮助 - 让运行时去进程事件,客户端代码必须退出所有函数。只有在当前帧中完成客户端代码之后,运行时才会与本机进程(以及网络和其他所有内容)进行通信。