coroutineScope { // create scope from suspending context
val logJob = launch {
delay(1_000L)
// only log if we have to wait for over a second
log.verbose("API call for ${request.uri} is queued")
}
hasTokenStates
.first { hasToken -> hasToken } // suspending
logJob.cancel()
}