Skip to content

Instantly share code, notes, and snippets.

@ulve
Created March 9, 2018 12:44
Show Gist options
  • Save ulve/2bfd2e997bd12eb9a551c4b8d86c82d6 to your computer and use it in GitHub Desktop.
Save ulve/2bfd2e997bd12eb9a551c4b8d86c82d6 to your computer and use it in GitHub Desktop.
Hopactest
#r "packages/Hopac/lib/net45/Hopac.Core.dll"
#r "packages/Hopac/lib/net45/Hopac.Platform.dll"
#r "packages/Hopac/lib/net45/Hopac.dll"
open Hopac
open Hopac.Infixes
type Delkrav = {
DelkravId : int
Delkravsnamn : string
}
type Mål = {
ÄrendeId : int
Sökande : string
Svarande : string
}
type MålMedDelkrav = {
Id : int
Sökande : string
Svarande : string
Delkrav : Delkrav list
}
let getMål id = job {
do! timeOutMillis 2000
return { ÄrendeId = id; Sökande = "Ett viktigt namn"; Svarande = "En annan snubbe" }
}
let getDelkravFörMål id = job {
do! timeOutMillis 3000
return [
{ DelkravId = id + 1; Delkravsnamn = "Kapital" }
{ DelkravId = id + 2; Delkravsnamn = "Processkostnad" }
]
}
let getMålMedDelkrav id = job {
let! mål = getMål id
let! delkrav = getDelkravFörMål id
return {
Id = id
Sökande = mål.Sökande
Svarande = mål.Svarande
Delkrav = delkrav
}
}
let getMålMedDelkravP id = job {
let! mål, delkrav = getMål id <*> getDelkravFörMål id
return {
Id = id
Sökande = mål.Sökande
Svarande = mål.Svarande
Delkrav = delkrav
}
}
#time "on"
getMålMedDelkrav 1 |> run |> printfn "%A"
#time "off"
#time "on"
getMålMedDelkravP 1 |> run |> printfn "%A"
#time "off"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment