我正在尝试发送一个事件但不确定何时应该这样做以获得正确的结果。第一个事件“submitClicked”位于正确的位置,效果很好。但是,第二个事件“dataReady”似乎可能是一个问题。
我需要在this.compiledFormData设置之后调度它。 在继续下一行之前,AS3是否等待函数中的每行代码执行?
// --------------------------------------------------------------------
public function submitForm()
{
//dispatch an event
var cEvt:FormRendererEvent = new FormRendererEvent( "submitClicked" );
cEvt.customMessage = "Started Submitting Form Data";
dispatchEvent(cEvt);
this.compiledFormData = JSON.encode(this.compileFormData());
var cEvt:FormRendererEvent = new FormRendererEvent( "dataReady" );
cEvt.customMessage = "Data is ready to be used";
dispatchEvent(cEvt);
}//end function
答案 0 :(得分:2)
是的,在AS3中,每行必须在下一行可以运行之前完成。当你发送事件时,它们会自行完成。因此,您的“主要”代码可能会完成,同时您的调度事件仍可能正在处理。
答案 1 :(得分:0)
每行代码都按顺序执行yes,但是调用API的实现是否异步取决于你正在调用的API。
在这种情况下,JSON.encode
是一个同步操作,因此在下一行代码执行之前完全完成。