suspend fun <T> withTimeoutOrNull((source)
block: suspend CoroutineScope.() -> T
Runs a given suspending block of code inside a coroutine with a specified timeout and returns
null if this timeout was exceeded.
Implementation note: how the time is tracked exactly is an implementation detail of the context’s CoroutineDispatcher.
timeMillis - timeout time in milliseconds.