In Elm
, and specifically with the Elm Architecture when the app first starts the init
function can return a Cmd Msg
that is executed. We can use this for sending http requests or send a message to native Javascript via Elm ports.
My question is, how can I send multiple commands that should be executed in init
?
For example I can do something like:
init : (Model, Cmd Msg) init = (Model "" [], (Ports.messageToJs "Hello JS"))
And I can do something like:
url : String url = "http://some-api-url.com" ... fetchCmd : Cmd Msg fetchCmd = Task.perform FetchError FetchSuccess fetchTask init : (Model, Cmd Msg) init = (Model "" [], fetchCmd)
How can I return both commands at same time from init
?
I have seen Task.sequence
and even Task.parallel
but they appear to be good for running multiple tasks, not specifically commands.
Commands. type Cmd msg. A command is a way of telling Elm, “Hey, I want you to do this thing!” So if you want to send an HTTP request, you would need to command Elm to do it. Or if you wanted to ask for geolocation, you would need to command Elm to go get it.
Use Platform.Cmd.batch
(docs):
init : (Model, Cmd Msg) init = ( Model "" [] , Cmd.batch [fetchCmd, Ports.messageToJs "Hello JS")] )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With