no versions found for ApplicationFrameworkReferences / Components/View/ViewLogic/viewlogic_post / en

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