高度なイベント¶
もしそうでなければ、最初にイベントチュートリアルを読んでください。これは、イベントシステムの厄介な詳細を文書化しています。
イベントAPIリファレンスが役立つかもしれません。
なぜ順序付けられていないのですか?¶
はい、ハンドラの呼び出し順序は保証されていません。これについてバグを報告しないでください。
これは、ハンドラ登録の順序がリリースで安定しているが、一般的には推論されていないロード順序に依存するために選択されました。さらに、xontribは、登録できるハンドラがわからないことを意味します。したがって、「オーダーされた」イベントシステムでさえ、より大きなシステムのために注文について保証することができない。
このため、イベントシステムは注文されません。これは抽象化の一形態です。オーダー依存のセマンティクスは組み込みメソッドでは推奨されません。
どうすれば結果を処理できますか?¶
Event.fire()
ハンドラからの戻り値のリストを返します。このリストを適切な方法でマージする必要があります。
種は何ですか?¶
xonshでは、イベントが種に入ってくる。それぞれはイベントのように見えるかもしれませんし、イベントのように突っ込むかもしれませんが、彼らは異なって行動します。
これは、ロードフックがイベントのように見え、イベントのように突然変化するために行われましたが、セマンティクスが異なります。詳細については、LoadEventsを参照してください。
イベントを既定の状態Event
にするには、を使用してイベントを変換する必要があり
ますevents.transmogrify()
。イベントが発生するクラスは、クラスのサブクラスでなければなりませんAbstractEvent
。
(フードの下で、transmogrifyは新しいインスタンスを作成し、ハンドラとドキュメントストリングを古いインスタンスから新しいインスタンスにコピーします。)