我有一个执行服务调用的命令。在结果处理程序中,我正在根据结果数据执行一些逻辑。如果逻辑符合特定标准,我将显示一个确认弹出窗口。如果用户单击确认弹出窗口中的继续按钮,我将调用一个方法,该方法将调度 Parsley 事件。Parsley 事件没有被捕获。但是,如果我从 result 方法内部调度 Parsley 事件,它就会被捕获。知道为什么从结果方法外部调度事件时没有捕获事件吗?
例如...
[MessageDispatcher]
[Bindable]
public var dispatcher:Function;
我从命令内部执行一些服务调用:
public function execute(event:SomeEvent):AsyncToken
{
return service.callService(event.type, false);
}
我现在有一个这样的结果处理程序:
public function result(data:Object):void
{
if (add some logic here based off data)
AlertHelper.showContinueQuestion(onSelection, "Are you sure you want to continue?");
}
如果用户单击确认弹出窗口上的 Continue 按钮,它会调用 onSelection 方法:
private function onSelection():void
{
dispatcher(new SomeEvent(SomeEvent.UPLOAD));
}
Parsley 事件 SomeEvent 没有被捕获。但是,如果我在 if 语句之后调度该事件,它就会被捕获并且工作正常。知道为什么从结果处理程序外部调度它时没有被捕获吗?我也尝试过其他命令,它做同样的事情。