サービス呼び出しを実行するコマンドがあります。結果ハンドラーでは、結果データに基づいていくつかのロジックを実行しています。ロジックが特定の基準を満たしている場合、確認ポップアップを表示しています。ユーザーが確認ポップアップの [続行] ボタンをクリックすると、呼び出されるメソッドがあり、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?");
}
ユーザーが確認ポップアップで [続行] ボタンをクリックすると、onSelection メソッドが呼び出されます。
private function onSelection():void
{
dispatcher(new SomeEvent(SomeEvent.UPLOAD));
}
そのパセリ イベント SomeEvent はキャッチされていません。ただし、if ステートメントの後にそのイベントをディスパッチすると、キャッチされて正常に動作します。結果ハンドラーの外部からディスパッチされたときにキャッチされない理由は何ですか? 他のコマンドも試してみましたが、同じことをします。