import std/[asyncfutures, asyncdispatch, strformat]
proc fakeproc(): Future[string] {.async.} =
await sleepAsync(1)
result = "fake proc"
let fake1 = fakeproc() # <----- if you comment this line
let fakeFuture = newFuture[string]()
fakeFuture.complete "I am a fake value"
addCallback[string](
fakeFuture,
cb = proc(x: Future[string]): void = echo fmt"fakeFuture callback: ${x.read=}") # <---- this line will be called