2013-10-01 40 views
0

我有這樣的代碼:異步DB ACCES toplevelApplication.close()並沒有什麼是在DB

try { 
    var a = arr[index]; 
} 
catch (e:Error){ 
    putErrorIntoSQLite(); // asynchronous DB access 
    FlexGlobals.topLevelApplication.close(); // closing the application 
} 

我susspect它是一個異步DB訪問且沒有時間來插入錯誤消息發送到DB在關閉應用程序之前。

問題:如何防止這個?如何推遲close()操作並等待數據庫事件?

如果不是這個

putErrorIntoSQLite(); // asynchronous DB access 

我會用[綁定]變量

bindableVar = "This is an error message"; 

也使用的事件?

+0

趕上[閉](http://flex.apache.org/asdoc/spark/components/WindowedApplication.html#event:closing)事件,並從那裏取消關閉動作。 – RIAstar

+0

是的,我完全像你說的那樣,它對我很有用。請以正常方式提出我的問題。我將能夠將其標記爲我的問題的正確解決方案。謝謝。 – Krzysztof

回答

0

您的懷疑可能是正確的。

還有two ways to make database queries與API,一個是同步的,另一個是異步的。您可以切換到同步模式當您執行SQL語句(並且僅在調度該事件後關閉應用程序)時監聽SQLEvent.RESULT

如果您需要進一步的幫助,請考慮在您的putErrorIntoSQLite()方法中顯示代碼。