ViewLogic: post()
対象の ViewLogic にメッセージを送ります。
- この関数は
ProtoViewLogicクラスのpost()関数のオーバライドです。
構文
ViewLogic.post(message) => Promise<boolean>
ViewLogic.post(message, options) => Promise<boolean>
引数
-
message:object対象の
ViewLogicに送るメッセージオブジェクトです。以下のプロパティを持ちます:-
id:string|nullメッセージの識別子です。
-
code:string|nullメッセージの識別子です。
-
param:any|nullメッセージが持つパラメータです。
-
origin:object|nullメッセージの生成元です。
-
-
oprions:object(省略可)送信するメッセージに関するオプションです。 このオブジェクトは以下のプロパティを持ちます:
-
discardDuplicates:booleanメッセージの滞留制御のフラグです。
trueの場合、idとcodeが同一の処理中のメッセージがある場合はmessageを受け取りません。 デフォルトはfalseです。
-
返値: Promise<boolean>
送信したメッセージが消費されたかどうかを解決時に示すプロミスです。
true として解決された場合、メッセージが消費されたことを示し、false なら消費されなかったことを示します。
例外
TypeError- 引数
messageが非nullのオブジェクトでなかった場合。
- 引数
解説
post() を呼び出すと対象の ViewLogic の messageHandler() が呼び出されます。
対象の ViewLogic の messageHandler() がメッセージを処理しなかった場合、同一メッセージを引数として、対象の ViewLogic の parent に対して post() を呼び出しメッセージを転送します。もし parent が存在しない場合、代わりに、対象の ViewLogic の host を関連付けている(ProtoViewLogic.relateElements() 参照) ProtoViewLogic に対し post() を呼び出しメッセージを転送します。いずれも存在しない場合、messageHandler() の結果をそのまま返します。
ただし、host を関連付けた ProtoViewLogic が対象の ViewLogic やその parent の子孫なら(対象の ViewLogic がメッセージの転送先となる ViewLogic の祖先なら)、メッセージは転送されません。
そのほかの振る舞いは基底クラスでの実装 (ProtoViewLogic.post()) と同様です。