读书人

单例遇到的有关问题

发布时间: 2013-03-22 09:49:50 作者: rapoo

单例遇到的问题

?

今天一个单例的程序出了问题,分析一下。代码如下:

这是调用回调函数的代码,调用完注册回调函数,即将回调函数设为默认

?

        //如果是结果事件,结果回调函数处理        public function result(data:Object):void {            var event:ResultEvent = data as ResultEvent;            resultCallbackFunction(event.result);    resultCallbackFunction = defaultFunction;        }

?每次方法调用前会注册回调函数

        //设置结果回调函数        public function setResultCallbackFunction(resultCallback:Function = null):void {            if (resultCallback == null) {                resultCallbackFunction = defaultFunction;            }            else {                resultCallbackFunction = resultCallback;            }        }

?问题出现了,我有一个程序,是调用接口的回调函数中再去调用接口

举个例子是这样的

?

[Test]public function testGetAccountInfo():void{//接口回调中调新接口accountService.getAccountInfo("13666666666","012345",resultItemResultHandler2,faultResultHandler);}public function resultItemResultHandler2(data:Object):void{testGetHoldNumberList();}[Test]public function testGetHoldNumberList():void{accountService.getHoldNumberList("1","41000000","02","012231",resultItemResultHandler,faultResultHandler);}

这时问题出现了第一个接口回调过来时 执行

?

 resultCallbackFunction(event.result);

resultItemResultHandler2

于是

testGetHoldNumberList()

方法执行了,也会走

setResultCallbackFunction

但设置完后,又执行了

resultCallbackFunction = defaultFunction;

于是之前的回调函数注册就没用了。大家使用单例时要注意了。

?

?

读书人网 >编程

热点推荐