andrewMacmurray/elm-delay/4.0.0

Delay

Utilities to delay updates after a given number of milliseconds

Delay one message

after : Millis -> msg -> Cmd msg

Triggers a Message after given number of milliseconds

after 500 DelayedMsg

Delay a sequence of messages

sequence : List ( Millis, msg ) -> Cmd msg

Start a sequence of delayed Messages

this can be read as:

  • after 1000ms FirstMessage will be triggered
  • then after 2000ms SecondMessage will be triggered
  • then after 1000ms ThirdMessage will be triggered
sequence
    [ ( 1000, FirstMessage )
    , ( 2000, SecondMessage )
    , ( 1000, ThirdMessage )
    ]
sequenceIf : Bool -> List ( Millis, msg ) -> Cmd msg

Conditionally start a sequence of delayed Messages

sequenceIf (not model.updating)
    [ ( 1000, FirstMessage )
    , ( 2000, SecondMessage )
    , ( 1000, ThirdMessage )
    ]
withUnit : ToUnit -> List ( Millis, msg ) -> List ( Millis, msg )

Helper for making all steps have the same unit

sequence
    (withUnit seconds
        [ ( 1, FirstMessage )
        , ( 2, SecondMessage )
        , ( 1, ThirdMessage )
        ]
    )

Time units

type alias Millis =
Int

Default unit of time

type alias ToUnit =
Millis -> Millis

Alias for converting milliseconds to another unit

seconds : Millis -> Millis

Convert milliseconds to seconds

minutes : Millis -> Millis

Convert milliseconds to minutes

hours : Millis -> Millis

Convert milliseconds to hours