I noticed that Elm/Random has no way to generate a random value as a Task. I’m not sure if this is intended.
Currently, I am trying to build a chat with Jsonstore at the backend.
If I now want to create a new chatroom, I need to first generate a number and then create the room.
createRoom : Task Error (Maybe Room)
createRoom =
Random.generateTask Random.int 0 Random.maxInt
|> Task.andThen insertNewRoom
Instead, I need to split it up into two messages: one for the Random value and one for everything else.
update : Msg -> Model -> (Model,Cmd Msg)
update msg model =
case msg of
PressedNewRoomButton ->
( model
, Random.generate Random.int 0 Random.maxInt
)
GeneratedRoomId int ->
( model
, insertNewRoom int
|> Task.attempt Sync
)
Alternatively I could store a seed in the model, but as this is the only time I use a Random value, I would like to avoid it.