You could propably "tick" (as in example from docs) every few seconds and return Cmd.none if you're before expiration, and some other Cmd otherwise. Does it make sense?
Regards, Witold Szczerba 08.11.2016 5:22 PM "'Rupert Smith' via Elm Discuss" < [email protected]> napisaĆ(a): > I have an authentication token that I know expires at a particular moment > in time: > > type alias AuthState = > { loggedIn : Bool > , permissions : List String > , expiresAt : Maybe Date > } > > I would like to fire an event once it gets close to 'expiresAt'. > > What happens if I update the subscription > > subscriptions : Model -> Sub Msg > subscriptions model = > Time.every ((Date.toTime model.authState.expiresAt) - now) > RefreshTokenMsg > > I'm worried that as this subscription will be re-evaluated every time the > model changes, that Time.every may somehow miss this expiry time. Say there > are some other events causing model changes very close to the expiry time, > can re-evaluation this subscription cause a one off firing of it to be > missed? > > Is there some better way to subscribe to a one-off event? > > Or perhaps I should change the logic so once a point in time is passed > that is close to the expiry time, I start regularly firing RefreshTokenMsg, > perhaps every couple of secods. That way any glitches will be recovered > from: > > subscriptions : Model -> Sub Msg > subscriptions model = > if afterCloseToExpiryTime then > Time.every Time.second RefreshTokenMsg > else > Sub.none > > -- > You received this message because you are subscribed to the Google Groups > "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
