ViewLogic: post()
対象の ViewLogic にメッセージを送ります。
info
- この関数は
ProtoViewLogicクラスのpost()関数のオーバライドです。
構文
ViewLogic.post(message) => Promise<boolean>
引数
-
message:object対象の
ViewLogicに送るメッセージオブジェクトです。以下のプロパティを持ちます:-
id:string|nullメッセージの識別子です。
-
code:string|nullメッセージの識別子です。
-
param:anyメッセージが持つパラメータです。
-
origin:objectメッセージの生成元です。
-
返値: Promise<boolean>
依頼されたメッセージ処理が消費されたかどうかを返すプロミスです。true ならメッセージが処理されたことを示し、false なら未処理であることを示します。
例外
TypeError- 引数
messageが非nullのオブジェクトでなかった場合。
- 引数
解説
post() を呼び出すと対象の ViewLogic の messageHandler() が呼び出されます。
対象の ViewLogic が parent を持たない場合に、対象の ViewLogic が host を持ち、かつ host を関連付けている(ProtoViewLogic.relateElements() 参照) ProtoViewLogic が存在する場合、その ProtoViewLogic に対して、新たにメッセージを post() します。新たに生成されるメッセージは以下のプロパティを持ちます:
id: 元のメッセージのmessage.idと同じ値を持ちますcode: 元のメッセージのmessage.codeと同じ値を持ちますparam: 元のメッセージのmessage.paramと同じ値を持ちますorigin: 元のメッセージのmessage.originと同じ値を持ちますtarget: 新たなメッセージの送信先が設定されますrepostBy: メッセージの転送を仲介したhostが設定されますlast: 元のメッセージの送信先や転送元の情報が設定されますlast.target: 元のメッセージのmessage.targetと同じ値か、message.targetが未定義なら対象のViewLogic自身が設定されますlast.repostBy: 元のメッセージのmessage.repostByと同じ値を持ちますlast.last: 元のメッセージのmessage.lastと同じ値を持ちます
ただし、host に関連付けられた ViewLogic が post() の対象の ViewLogic の子孫なら(対象の ViewLogic がメッセージの転送先となる ViewLogic の祖先なら)、メッセージの転送は行いません。
そのほかの振る舞いは基底クラスでの実装 (ProtoViewLogic.post()) と同様です。