Futures and Async Concepts
Async Status
Represent whether an async result is ready.
async-status
An async operation usually has a state before its value is available. This page models that state with a boolean and a scalar fallback.
Async Status
AsyncStatus.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val completed = true
val result = 42
val status = if (completed) "completed" else "pending"
val visible = if (completed) result else 0
println("status=" + status)
println("visible=" + visible)
}
}
object Main {
def main(args: Array[String]): Unit = {
val completed = false
val result = 42
val status = if (completed) "completed" else "pending"
val visible = if (completed) result else 0
println("status=" + status)
println("visible=" + visible)
}
}
completed ← true, result ← 42, status ← completed, visible ← 42
1object Main {2 def main(args: Array[String]): Unit = {3 val completed→ true = true //@completed=false4 val result→ 42 = 425 val status→ completed = if (completedtrue) "completed" else "pending"6 val visible→ 42 = if (completedtrue) result42 else 078 println("status=" + statuscompleted)9 println("visible=" + visible42)10 }11}outputstatus=completed visible=42
completed ← false, result ← 42, status ← pending, visible ← 0
1object Main {2 def main(args: Array[String]): Unit = {3 val completed→ false = false4 val result→ 42 = 425 val status→ pending = if (completedfalse) "completed" else "pending"6 val visible→ 0 = if (completedfalse) result42 else 078 println("status=" + statuspending)9 println("visible=" + visible0)10 }11}outputstatus=pending visible=0