ViewLogic: post()

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

info

構文

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 の場合、 idcode が同一の処理中のメッセージがある場合は message を受け取りません。 デフォルトは false です。

返値: Promise<boolean>

送信したメッセージが消費されたかどうかを解決時に示すプロミスです。 true として解決された場合、メッセージが消費されたことを示し、false なら消費されなかったことを示します。

例外

  • TypeError
    • 引数 message が非 null のオブジェクトでなかった場合。

解説

post() を呼び出すと対象の ViewLogicmessageHandler() が呼び出されます。

対象の ViewLogicmessageHandler() がメッセージを処理しなかった場合、同一メッセージを引数として、対象の ViewLogicparent に対して post() を呼び出しメッセージを転送します。もし parent が存在しない場合、代わりに、対象の ViewLogichost を関連付けている(ProtoViewLogic.relateElements() 参照) ProtoViewLogic に対し post() を呼び出しメッセージを転送します。いずれも存在しない場合、messageHandler() の結果をそのまま返します。

ただし、host を関連付けた ProtoViewLogic が対象の ViewLogic やその parent の子孫なら(対象の ViewLogic がメッセージの転送先となる ViewLogic の祖先なら)、メッセージは転送されません。

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