2012-04-03 88 views
0

我一直在使用Flex Framework的WebService和Operation類一段時間後,經過一段時間的起伏(更多的起伏,比起ups,哈哈)我正在重構它的所有使用一些實用程序類/包裝。Flex WebService invokeAllPending從未調用

在瀏覽了一小段mx.rpc.soap.Operation的代碼後,我注意到當你使用方法「send」並且web服務沒有準備好時,調用被排隊到一個內部數組(pendingInvocations:Array在行1142)。但有趣的是,隊列中的調用永遠不會再被調用。

這是一個錯誤,或者我做錯了什麼?

我在考慮擴展mx.rpc.soap.Operation,覆蓋「send」並測試是否有調用排隊,調用invokeAllPending(一個可以彈出所有排隊調用的mx_internal方法)我的自我。

但另一個問題是,該方法是mx_internal,所以我不知道Adobe是否會改變它很快。

有什麼建議嗎?

在此先感謝

回答

1

這不是一個錯誤。看看AbstractWebService的定義;它定義了一個名爲unEnqueueCalls的方法(它正好位於我見過的尷尬方法名稱的頂部附近:))。此方法遍歷webservice中的所有操作,並通過調用您發現的invokeAllPending方法調用每個操作的未決調用。

unEnqueueCalls本身在WebService類中調用,在wsdlFaultwsdlHandler方法中,其中之一在WSDL完成加載時運行。

所以,一切都是佔了;你不需要重寫任何東西。

+0

太棒了!感謝您的重播 – nMoncho 2012-04-04 17:46:59