andrewMacmurray / elm-delay / Delay

Utilities to delay updates after a given number of milliseconds

Delay one message

after : Millis -> msg -> Platform.Cmd.Cmd msg

Triggers a Message after given number of milliseconds

after 500 DelayedMsg

Delay a sequence of messages

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

Start a sequence of delayed Messages

this can be read as:

sequence
    [ ( 1000, FirstMessage )
    , ( 2000, SecondMessage )
    , ( 1000, ThirdMessage )
    ]

sequenceIf : Basics.Bool -> List ( Millis, msg ) -> Platform.Cmd.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 =
Basics.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