我一直在使用Flex Framework的WebService和Operation类,经过一些起伏(比起来更多,哈哈)我正在使用一些实用程序类/包装器重构它的所有用途。< / p>
在浏览了一些mx.rpc.soap.Operation的代码后,我注意到当你使用方法“send”并且web服务还没有准备就绪时,调用就会排队到一个内部数组(pendingInvocations:Array in第1142行)。但有趣的是,队列中的调用永远不会再被调用。
这是一个错误或者我做错了什么?
我正在考虑扩展mx.rpc.soap.Operation,覆盖“发送”并测试是否存在排队调用,调用invokeAllPending(弹出所有排队调用的mx_internal方法)我自己。
但另一个问题是该方法是mx_internal,所以我不知道Adobe是否会在短期内改变它。
有什么建议吗?
提前致谢
答案 0 :(得分:1)
这不是一个错误。看一下AbstractWebService
的定义;它定义了一个名为unEnqueueCalls
的方法(它靠近我见过的笨拙方法名列表的顶部:))。此方法遍历webservice中的所有操作,并通过调用您找到的invokeAllPending
方法调用每个操作的挂起调用。
unEnqueueCalls
本身是从WebService
类调用的wsdlFault
和wsdlHandler
方法,其中一个方法在WSDL加载完成后运行。
所以,一切都被考虑在内;你不需要覆盖任何东西。