elm: определить порт подписки без параметров
Есть ли способ определить порт подписки без параметров в Elm?
Что-то вроде:
port updateTime : () -> Sub msg
С этим кодом я получаю сообщение об ошибке "Порт 'updateTime' имеет недопустимый тип"
С кодом:
port updateTime : (String -> msg) -> Sub msg
Это работает, но мне не нужно ничего отправлять из функции javascript в Elm.
1 ответ
Решение
Самое близкое, что вы можете получить, это, вероятно, что-то вроде этого: Создайте порт, похожий на ваши примеры, но с первыми параметрами как (() -> msg)
:
port updateTime : (() -> msg) -> Sub msg
Если у вас есть UpdateTime
Msg
это не принимает никаких параметров,
type Msg
= ...
| UpdateTime
Затем вы можете связать в updateTime
подписка такая:
subscriptions : Model -> Sub Msg
subscriptions model =
updateTime (always UpdateTime)
Теперь, на стороне JavaScript, вам придется пройти null
как единственный параметр.
app.ports.updateTime.send(null);