В Elm
, и в частности с помощью Elm Architecture, когда приложение начинает работу init
, функция может вернуть Cmd Msg
. Мы можем использовать это для отправки HTTP-запросов или отправки сообщения на собственный Javascript через Elm ports.Выполнять две команды одновременно в Elm
Мой вопрос в том, как я могу отправить несколько команд, которые должны быть выполнены в init
?
Например, я могу сделать что-то вроде:
init : (Model, Cmd Msg)
init =
(Model "" [], (Ports.messageToJs "Hello JS"))
И я могу сделать что-то вроде:
url : String
url =
"http://some-api-url.com"
...
fetchCmd : Cmd Msg
fetchCmd =
Task.perform FetchError FetchSuccess fetchTask
init : (Model, Cmd Msg)
init =
(Model "" [], fetchCmd)
Как я могу вернуть обе команды в то же время от init
?
Я видел Task.sequence
и даже Task.parallel
, но они кажутся хорошими для запуска нескольких задач, а не только команд.
отлично! thanks – antfx
Выполняют ли команды параллельно или они сериализуются? Я думаю о пакете нескольких HTTP-запросов, которые занимают много времени, если они будут сериализованы. – goertzenator
@goertzenator они работают параллельно, а не в серии – antfx