Deferred

interface Deferred<T> : Job

代表一个延迟计算的结果,是 Job 的一个可返回值的特化版本。

它类似于其他语言中的 Promise 或 Future。Deferred 接口的设计支持优雅的链式调用, 允许你将多个异步操作串联起来,形成清晰、线性的代码流,从而避免“回调地狱”。

Parameters

T

延迟计算结果的类型。

Functions

Link copied to clipboard
abstract fun also(block: (ERROR CLASS: Symbol not found for kotlinx.coroutines.Job) -> Unit): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.Job>

对 ObjectWrapper 调用给定的 block 函数,并返回 ObjectWrapper 本身。

Link copied to clipboard
abstract fun apply(block: ERROR CLASS: Symbol not found for kotlinx.coroutines.Job.() -> Unit): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.Job>

对 ObjectWrapper 调用给定的 block 函数,并返回 ObjectWrapper 本身。

Link copied to clipboard
abstract fun cancel(message: String?)

取消此任务,并可选择提供一个原因。

Link copied to clipboard
abstract fun getContext(): ScriptContext

获取脚本上下文对象 ScriptContext.

Link copied to clipboard
abstract override fun getOrigin(): ERROR CLASS: Symbol not found for kotlinx.coroutines.Deferred<T>

获取底层的 Kotlin Deferred 实例。

Link copied to clipboard
abstract fun invokeOnCompletion(handler: (Throwable?) -> Unit): DisposableHandle

注册一个在任务完成时(正常结束、被取消或失败)调用的回调函数。

Link copied to clipboard
abstract fun isActive(): Boolean

检查此任务是否仍在活动中(即尚未完成也未被取消)。

Link copied to clipboard
abstract fun isCancelled(): Boolean

检查此任务是否已被取消。

Link copied to clipboard
abstract fun isCompleted(): Boolean

检查此任务是否已经完成(无论成功、失败或取消)。

Link copied to clipboard
abstract fun <R> let(block: (ERROR CLASS: Symbol not found for kotlinx.coroutines.Job) -> R): ObjectWrapper<R>?

对 ObjectWrapper 调用给定的 block 函数,并返回 block 函数的结果包装在 ObjectWrapper 中。

Link copied to clipboard
abstract fun onComplete(handler: () -> Unit): Deferred<T>

注册一个在延迟计算完成时(无论成功、失败还是取消)都会执行的回调。

Link copied to clipboard
abstract fun onError(handler: (Throwable) -> Unit): Deferred<T>

注册一个在延迟计算失败(即协程抛出异常)时执行的回调。

Link copied to clipboard
abstract fun <R> run(block: ERROR CLASS: Symbol not found for kotlinx.coroutines.Job.() -> R): ObjectWrapper<R>?

对 ObjectWrapper 调用给定的 block 函数,并返回 block 函数的结果包装在 ObjectWrapper 中。

Link copied to clipboard
abstract fun setOrigin(origin: ERROR CLASS: Symbol not found for kotlinx.coroutines.Job)

设置原始对象

Link copied to clipboard
abstract fun start(): Boolean

启动一个以懒惰模式(CoroutineStart.LAZY)创建的协程。

Link copied to clipboard
abstract fun takeIf(predicate: (ERROR CLASS: Symbol not found for kotlinx.coroutines.Job) -> Boolean): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.Job>?

如果 ObjectWrapper 满足给定的 predicate,则返回 ObjectWrapper 本身,否则返回 null 包装在 ObjectWrapper? 中。

Link copied to clipboard
abstract fun takeUnless(predicate: (ERROR CLASS: Symbol not found for kotlinx.coroutines.Job) -> Boolean): ObjectWrapper<ERROR CLASS: Symbol not found for kotlinx.coroutines.Job>?

如果 ObjectWrapper 不满足给定的 predicate,则返回 ObjectWrapper 本身,否则返回 null 包装在 ObjectWrapper? 中。

Link copied to clipboard
abstract fun <R> then(handler: (CoroutineScope, T) -> Deferred<R>): Deferred<R>

注册一个转换函数,该函数接收当前 Deferred 的成功结果,并返回 另一个 Deferred。 新返回的 Deferred 将代表整个链的下一个状态。

Link copied to clipboard
abstract fun toDeferred(): Deferred<Unit>

将此 Job 转换为一个 Deferred