几乎肯定是一个XY问题,但我想不出一个简洁的方法来表达我正在尝试做的事情.
我有一个textarea.在该文本区域内,用户输入以逗号分隔的ID号列表.当他们单击"Fetch"时,我将他们的输入分成逗号,以获取多个字符串值,并且每个字符串值都会传递给一个函数,该函数向我的API发出HTTP请求以获取有关该项的信息.
这就是我绊倒的地方.现在我有这些部分:
getInfo : String -> Cmd Msg,取一个ID字符串,最终开火 Http.sendtype Msg = Fetch String,哪里 Fetch idStr -> (model, getInfo idStr)我有点想接受我的textarea的输入并说出来String.split "," |> List.map (\id -> getInfo id).除了我不知道该怎么做List Msg才会给我,我想解雇每一个消息,但是Elm不会这样做?
在阅读时我发现Cmd.batch,但在文档中没有任何关于它的信息,所以我不确定这是我想要的或如何使用它.
是的,Cmd.batch可以将多个cmd批量放入一个cmd.
例如(通过新消息:) FetchAll:
FetchAll idsStr ->
let
cmds = String.split "," idsStr |> List.map (\id -> getInfo id)
in (model, Cmd.batch cmds)
Run Code Online (Sandbox Code Playgroud)
也(model, Cmd.batch cmds)可以写成model ! cmds