在 Elm 中没有消息的 Cmd

Cmd with no message in Elm

是否可以创建一个 Cmd 在 Elm 中完成时不发送消息?

具体来说,我试图让一个元素获得焦点(以编程方式),但我不需要被告知结果:

Dom.focus "element-id"
    |> Task.attempt FocusReceived
...
FocusReceived result ->
    model ! []  -- result ignored

有没有办法让 Elm "engine" 在此 Cmd 之后不发送消息?

我知道我的代码 (FocusReceived result -> model ! []) 是空操作,但我不希望消息被发送。

不,总是需要 Msg。在典型的 Elm 项目中,包含一个什么都不做的 Msg 类型构造函数是一个常见的习惯用法,名为 NoOp.

type Msg
    = NoOp
    | ...

update 函数执行您示例中的 FocusReceived 执行的操作,即什么都不做。

case msg of
    NoOp ->
        model ! []
    ...