从未调用Flex WebService invokeAllPending

时间:2012-04-03 19:22:32

标签: actionscript-3 flex

我一直在使用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是否会在短期内改变它。

有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

这不是一个错误。看一下AbstractWebService的定义;它定义了一个名为unEnqueueCalls的方法(它靠近我见过的笨拙方法名列表的顶部:))。此方法遍历webservice中的所有操作,并通过调用您找到的invokeAllPending方法调用每个操作的挂起调用。

unEnqueueCalls本身是从WebService类调用的wsdlFaultwsdlHandler方法,其中一个方法在WSDL加载完成后运行。

所以,一切都被考虑在内;你不需要覆盖任何东西。