2017-08-24 76 views
-1

我必須調用一個在回調函數中返回一些數據(我想要的)的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本身進行服務器調用。

+0

@Ivar它沒有談論任何地方的動作。 – user3694269

+0

您要求flex等待JavaScript函數有數據。這可以通過使用一個調用完成後調用flex的回調來解決。我不知道如何在回調函數中獲取數據,因爲您沒有指定。 – Ivar

+0

@Ivar爲簡單起見,數據是在javascript本身計算的。由於需要一些時間,因此使用超時。這就是爲什麼我需要的數據來自回調。 – user3694269

回答

0

不能說有關彈性任何事情,因爲我從來沒有與它密切合作,但在純AS3中,你可以從JavaScript得到返回值如下:

const returnValue: * = ExternalInterface.call(...); 

任何具體的解決方案將在很大程度上取決於您現有的碼。

+0

添加示例代碼。任何幫助表示讚賞。 – user3694269

+0

那麼,你的js代碼也是基於回調的。要麼你把所有的東西做成異步的(即把它留在回調函數中),要麼以同步的方式計算值並將其返回。 – Nbooo

相關問題