Effects.tick 替换榆树 0.17
Effects.tick replacement for elm 0.17
正如 the upgrade guide 中所述,Effects
正在被这个新的类似 Applicative Functor 的东西所取代 Cmd
。我没有看到任何关于 Effects.tick
可能隐藏在哪里,或者如何重新实现它的线索。
从表面上看,Process.sleep
可能是正确答案,例如
Task.perform errorHandler (\x -> x) <| Process.sleep
<| 500 * Time.millisecond
将允许进程在发出下一条消息/操作之前等待 500 毫秒。我只是不确定这是否会 替换 Effects.tick 在长 运行 中。
Effect.tick 功能被 AnimationFrame 取代。
你基本上订阅了一组时间或差异的消息。并做出相应反应。
import Html exposing (..)
import Html.App as App
import AnimationFrame
import Time exposing (Time, second)
main =
App.program
{ init = Model 0 0 ! []
, update = \msg model -> update msg model ! []
, view = view
, subscriptions = \_ -> AnimationFrame.diffs identity}
type alias Model =
{ timeSinceLastIncrement : Time
, counter : Int }
incrementTime = 1*second
update diff {timeSinceLastIncrement, counter} =
if timeSinceLastIncrement > incrementTime then
Model 0 (counter+1)
else
Model (timeSinceLastIncrement+diff) counter
view {counter} =
div [] [text (toString counter)]
我选择直接将时间差异作为消息发送,并在 update
和 view
中解压模型结构,以便更轻松地访问组件。在更复杂的应用程序中,您可能会收到类似 Tick Time
的消息。
正如 the upgrade guide 中所述,Effects
正在被这个新的类似 Applicative Functor 的东西所取代 Cmd
。我没有看到任何关于 Effects.tick
可能隐藏在哪里,或者如何重新实现它的线索。
从表面上看,Process.sleep
可能是正确答案,例如
Task.perform errorHandler (\x -> x) <| Process.sleep
<| 500 * Time.millisecond
将允许进程在发出下一条消息/操作之前等待 500 毫秒。我只是不确定这是否会 替换 Effects.tick 在长 运行 中。
Effect.tick 功能被 AnimationFrame 取代。
你基本上订阅了一组时间或差异的消息。并做出相应反应。
import Html exposing (..)
import Html.App as App
import AnimationFrame
import Time exposing (Time, second)
main =
App.program
{ init = Model 0 0 ! []
, update = \msg model -> update msg model ! []
, view = view
, subscriptions = \_ -> AnimationFrame.diffs identity}
type alias Model =
{ timeSinceLastIncrement : Time
, counter : Int }
incrementTime = 1*second
update diff {timeSinceLastIncrement, counter} =
if timeSinceLastIncrement > incrementTime then
Model 0 (counter+1)
else
Model (timeSinceLastIncrement+diff) counter
view {counter} =
div [] [text (toString counter)]
我选择直接将时间差异作为消息发送,并在 update
和 view
中解压模型结构,以便更轻松地访问组件。在更复杂的应用程序中,您可能会收到类似 Tick Time
的消息。