ViewLogic: post()

対象の ViewLogic にメッセージを送ります。

info

構文

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() を呼び出すと対象の ViewLogicmessageHandler() が呼び出されます。

対象の ViewLogicparent を持たない場合に、対象の ViewLogichost を持ち、かつ 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 に関連付けられた ViewLogicpost() の対象の ViewLogic の子孫なら(対象の ViewLogic がメッセージの転送先となる ViewLogic の祖先なら)、メッセージの転送は行いません。

そのほかの振る舞いは基底クラスでの実装 (ProtoViewLogic.post()) と同様です。