withTimeout

abstract fun <T> withTimeout(timeoutMillis: Long, block: CoroutineScope.() -> T): Deferred<T>

在指定的超时时间内运行代码块。如果超时,返回的 Deferred 将会因 TimeoutCancellationException 而失败。

这是一个非阻塞函数,它会立即返回一个 Deferred 对象。

Return

一个 Deferred 对象。如果代码块在超时前完成,它将持有结果;否则,它将以超时异常失败, 该异常可通过 Deferred.onError 捕获。

Parameters

T

代码块返回结果的类型。

timeoutMillis

超时时间(毫秒)。

block

要在超时限制内执行的代码块。