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()
) と同様です。