javascript - validacion - Ejecuta dos comandos al mismo tiempo en Elm
validar formulario javascript antes de enviar (2)
Haga lo que dice Sören, o use la sintaxis "bang" equivalente más nueva:
init : (Model, Cmd Msg)
init =
( Model "" [] )
! [fetchCmd, Ports.messageToJs "Hello JS"]
En Elm
, y específicamente con Elm Architecture cuando la aplicación se inicia por primera vez, la función init
puede devolver un Cmd Msg
que se ejecuta. Podemos usar esto para enviar solicitudes http o enviar un mensaje a JavaScript nativo a través de los puertos Elm .
Mi pregunta es, ¿cómo puedo enviar varios comandos que deben ejecutarse en init
?
Por ejemplo puedo hacer algo como:
init : (Model, Cmd Msg)
init =
(Model "" [], (Ports.messageToJs "Hello JS"))
Y puedo hacer algo como:
url : String
url =
"http://some-api-url.com"
...
fetchCmd : Cmd Msg
fetchCmd =
Task.perform FetchError FetchSuccess fetchTask
init : (Model, Cmd Msg)
init =
(Model "" [], fetchCmd)
¿Cómo puedo devolver ambos comandos al mismo tiempo desde init
?
He visto Task.sequence
e incluso Task.parallel
pero parecen ser buenos para ejecutar múltiples tareas, no específicamente comandos.
Utilice Platform.Cmd.batch
( docs ):
init : (Model, Cmd Msg)
init =
( Model "" []
, Cmd.batch [fetchCmd, Ports.messageToJs "Hello JS")]
)