XY 探针:如何同时发出一堆消息?

XY prob: How do I issue a bunch of msgs simultaneously?

几乎肯定是 XY problem,但我想不出一种简洁的方式来表达我想做的事情。

我有一个文本区域。在此文本区域内,用户输入以逗号分隔的 ID 号列表。当他们单击 "Fetch" 时,我用逗号分隔他们的输入,以获取多个字符串值,并且每个字符串值都被传递给一个函数,该函数向我的 API 发出 HTTP 请求以获取有关该项目的信息.

这就是我绊倒的地方。现在我有这些部分:

我有点想接受我的文本区域的输入并说 String.split "," |> List.map (\id -> getInfo id)。除了我不知道如何处理会给我的 List Msg,我想关闭所有这些消息,但 Elm 不是那样工作的吗?

在阅读时我发现 Cmd.batch,但文档中并没有关于它的任何信息,所以我不确定这是否是我想要的或如何使用它。

是的,Cmd.batch可以将多个命令批处理到一个命令中。

例如(通过新消息:FetchAll):

FetchAll idsStr ->
  let
    cmds = String.split "," idsStr |> List.map (\id -> getInfo id)
  in (model, Cmd.batch cmds)

另外,(model, Cmd.batch cmds)可以写成model ! cmds