zak.taccardi
03/10/2021, 8:59 PMlog.verbose("awaiting for ${request.uri}")
hasTokenStates
.first { hasToken -> hasToken } // suspending
log.verbose("awaiting complete for ${request.uri}")
I want to only log "awaiting for ${request.uri}"
if the first()
suspends for more than `1_000`msZach Klippenstein (he/him) [MOD]
03/10/2021, 9:00 PMtry {
withTimeout(duration) {
job.join()
}
} catch (e: TimeoutException) {
// …
}
zak.taccardi
03/10/2021, 9:00 PMcoroutineScope { // 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()
}
assuming that the delay(1_000L)
checks for cancellation upon exiting the delay