作者:小朱-听听积 | 来源:互联网 | 2023-05-17 13:41
在调用函数的时候,有时我们希望先执行完一个函数,然后再执行另一个一个函数;或者需要先执行一个函数,并得到这个函数的执行结果,根据这个结果去执行另一个函数。一般地,我们习惯只是排放函数的位置先后关系
在调用函数的时候,有时我们希望先执行完一个函数,然后再执行另一个一个函数;或者需要先执行一个函数,并得到这个函数的执行结果,根据这个结果去执行另一个函数。一般地,我们习惯只是排放函数的位置先后关系,以为这样函数就能按照我们的意愿去执行,然后结果总让人失望。暂未清楚其具体原因,只知其不可行,下面是一种解决方法:通过监听实现。
"1.0"
encoding=
"utf-8"?>
"http://www.adobe.com/2006/mxml" width="100%" 100%" pageTitle="函数执行顺序"
creationComplete="initApp();">
[CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.containers.VBox;
private var countdf:int = 0;
private function initApp():void{
menuService2.addEventListener(ResultEvent.RESULT,sfshow); //监听函数
menuService2.getCountByUserId(userid);
}
private function sfshow(event:ResultEvent):void{
countdf = event.result as int;
if(countdf>0){
Alert.show("countdf"+countdf);
}
}
]]>
</mx:Script>
"menuService2" destination="menuService"/>
100%" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
</mx:VBox>
</mx:Application >
另一种实现方式:
"1.0"
encoding="utf-8"?>
"http://www.adobe.com/2006/mxml" 100%" 100%" pageTitle="函数执行顺序"
creationComplete="initApp();">
[CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.containers.VBox;
private var countdf:int = 0;
private function initApp():void{
menuService2.getCountByUserId(userid);
}
private function sfshow(event:ResultEvent):void{
countdf = event.result as int;
if(countdf>0){
Alert.show("countdf"+countdf);
}
}
]]>
</mx:Script>
"menuService2" destination="menuService">
"getCountByUserId" result="sfshow(event)"/>
100%" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0">
</mx:VBox>
</mx:Application >