ОБНОВЛЕНИЕ: теперь это описано в документация по архитектуре Elm.
--
Я не понимаю, как вы связываете архитектуру Elm и задачи.
-- Action is an enumeration of possible actions
type Action = ..
-- Model is a Model that evolves in time
model : Signal Model
-- View turns a model into Html, potentially sending actions to an address
view : Address Action -> Model -> Html
-- Update turns a model and an action into another model
update : Action -> Model -> Model
-- Main waits for new values of the model to be emitted, and pass then to the view action
main : Signal Html
main =
Signal.map (view actions.address) model
Я пытаюсь смоделировать это:
- когда пользователь нажимает на кнопку, выдается "DoSomethingAction"
- это действие должно запускать задачу, обрабатываемую некоторым портом
- когда задача выполнена, она должна выдать другое действие ("SomethingDoneAction") с результатом
Это правильный путь?
Какие функции следует изменить (обновление, основное)?
Я понимаю, что это то, что упоминается здесь, но объяснение не слишком ясно, и я не понимаю, что нужно изменить.
Таким образом, любой полный пример/или более подробное объяснение будет приветствоваться.
РЕДАКТИРОВАТЬ :
Более полная версия (которая "вроде бы" работает) доступна здесь: http://share-elm.com/sprout/55bf3c3ce4b06aacf0e8ba17
Кажется, я в нескольких шагах от того, чтобы он заработал, поскольку задача не всегда запускается, когда я нажимаю кнопку (но, надеюсь, я куда-то добираюсь).