andrewMacmurray/elm-delay/3.0.1

NOTE: the latest version is 4.0.0

Delay

Utilities to delay updates after a set period of time

= Millisecond
| Second
| Minute
| Hour

Standard units of time

Delay one message

after : Float -> TimeUnit -> msg -> Cmd msg

Delays an update (with a message) by a given amount of time

after 500 Millisecond DelayedMsg

Delay a sequence of messages

sequence : List ( Float, TimeUnit, msg ) -> Cmd msg

Starts a sequence of delayed messages

sequence
    [ ( 1000, Millisecond, FirstMessage )
    , ( 2000, Millisecond, SecondMessage )
    , ( 1000, Millisecond, ThirdMessage )
    ]
sequenceIf : Bool -> List ( Float, TimeUnit, msg ) -> Cmd msg

Starts a sequence of delayed messages if predicate is met

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

Helper for making all steps have the same unit

sequence <|
    withUnit Millisecond
        [ ( 1000, FirstMessage )
        , ( 2000, SecondMessage )
        , ( 1000, ThirdMessage )
        ]