我正在使用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。 有没有办法实现这个目标?
答案 0 :(得分:1)
NativeProcess没有阻塞(同步)方法。 BTW,无限循环在这里没有帮助 - 让运行时去进程事件,客户端代码必须退出所有函数。只有在当前帧中完成客户端代码之后,运行时才会与本机进程(以及网络和其他所有内容)进行通信。