呼叫訊息列表的訊息

使用 sequence 功能,你可以輕鬆描述呼叫其他訊息列表的訊息。在處理訊息的語義時,它很有用。

示例 1:你正在製作遊戲引擎,你需要在每個幀上重新整理螢幕。

module Video exposing (..)
type Message = module Video exposing (..)

import Update.Extra exposing (sequence)

-- Model definition [...]

type Message
    = ClearBuffer
    | DrawToBuffer
    | UpdateLogic
    | Update

update : Message -> Model -> (Model, Cmd)
update msg model =
    case msg of
        ClearBuffer ->
            -- do something
        DrawToBuffer ->
            -- do something
        UpdateLogic ->
            -- do something
        Update ->
            model ! []
                |> sequence update [ ClearBuffer
                                   , DrawToBuffer
                                   , UpdateLogic]