如何等待从actionscript/flex调用的javascript函数?
我必须调用一个在回调函数中返回一些数据(我想要的)的javacript函数。现在我正在通过从JavaScript调用它将这些数据传回给Flex。如何等待从actionscript/flex调用的javascript函数?
但我想让flex以某种方式等待javascript函数来获取数据。我怎样才能做到这一点?
代码看起来是这样的:
这是我的Flex调用JavaScript的:
function myJavascriptFunctionThatReturnsCallback(uncomputedData){
var SomeDataComputator= SomeDataComputator();
SomeDataComputator.computeData(uncomputedData, function (computedData){
// call the flex again from here
myFlashObject.computationCompleteHandler(computedData);
})
}
我想的是,delegateComputaionToJavascript:
function delegateComputaionToJavascript(uncomputedData){
externalInterface.call('myJavascriptFunctionThatReturnsCallback', uncomputedData);
}
function computationCompleteHandler(computedData){
//goes ahead to process further
//like saving this data to DB in a server call
}
数据返回我的javascript函数flex中的函数不仅要调用javascript,还要等待myJavascriptFunctionT hatReturnsCallback完成执行,以便我可以在delegateComputaionToJavascript本身进行服务器调用。
不能说有关弹性任何事情,因为我从来没有与它密切合作,但在纯AS3中,你可以从JavaScript得到返回值如下:
const returnValue: * = ExternalInterface.call(...);
任何具体的解决方案将在很大程度上取决于您现有的码。
添加示例代码。任何帮助表示赞赏。 – user3694269
那么,你的js代码也是基于回调的。要么你把所有的东西做成异步的(即把它留在回调函数中),要么以同步的方式计算值并将其返回。 – Nbooo
@Ivar它没有谈论任何地方的动作。 – user3694269
您要求flex等待JavaScript函数有数据。这可以通过使用一个调用完成后调用flex的回调来解决。我不知道如何在回调函数中获取数据,因为您没有指定。 – Ivar
@Ivar为简单起见,数据是在javascript本身计算的。由于需要一些时间,因此使用超时。这就是为什么我需要的数据来自回调。 – user3694269