代码之家  ›  专栏  ›  技术社区  ›  mherzl

如何在Elm中暂停测量的时间?

  •  4
  • mherzl  · 技术社区  · 7 年前

    Elm 这涉及在测量的时间量(如一秒或毫秒)内显示图像。

    有办法在Elm中“暂停”吗?然后我可以显示、暂停,然后删除图像以达到效果。

    我注意到 clock example

    2 回复  |  直到 7 年前
        1
  •  3
  •   Tosh    7 年前

    您可以创建一个新的 Msg 触发(图像的)url更改的值。 并通过创建订阅 Timer.every 如果需要,可以在模型中添加一个标志,以指示是否继续更新图像。

    subscriptions : Model -> Sub Msg
    subscriptions model =
        if model.keepUpdating then
            Time.every (3 * second) (\x -> UpdateImage)
        else
            Sub.none
    
    
    update : Msg -> Model -> ( Model, Cmd Msg )
    update msg model =
        case msg of
            UpdateImage ->
                ( { model | image_url = "http://to_new_image/..." }, Cmd.none )
    
        2
  •  2
  •   Matt McHenry    7 年前

    elm-delay 包提供了一个很好的定时器抽象。创建 Cmd RemoveImage 在一秒钟内触发,你只需 after 1 second RemoveImage .