【发布时间】:2016-10-27 13:37:51
【问题描述】:
我已经问过这个问题了:
How do I get the current time in Elm?
并通过编写我自己(现已弃用)的 start-app 变体来回答它:http://package.elm-lang.org/packages/z5h/time-app/1.0.1
当然,Elm 架构已经改变了,我以前的做事方式不再有效,因为没有信号或Time.timestamp。
所以....
假设我构建了一个具有标准更新函数签名的应用程序:update : Msg -> Model -> (Model, Cmd Msg)
我想给我的模型加上更新时间的时间戳。一个不可接受的几乎解决方案是订阅Time.every。从概念上讲,这不是我想要的。这是随时间更新模型,并使用消息单独更新模型。
我想要的是能够写一个带有签名的更新函数:updateWithTime : Msg -> Time -> Model -> (Model, Cmd Msg)
我开始尝试通过添加一些额外的消息来解决这个问题:Msg = ... When | NewTime Time
并创建一个新命令:timeCmd = perform (\x -> NewTime 0.0) NewTime Time.now
所以在任何操作中,我都可以触发一个额外的命令来检索时间。但这很快就会变得混乱和失控。
关于如何清理它的任何想法?
【问题讨论】:
标签: functional-programming elm frp