cancellable Deferred
创建一个 Deferred,它会挂起直到你手动通过提供的 CancellableContinuation 来恢复它。
这是将传统的回调式 API 转换为现代协程风格 Deferred 的关键桥梁。
使用方法:
在
block内部,启动你的回调式异步操作。当异步操作成功时,调用
continuation.resume(result)。当异步操作失败时,调用
continuation.resumeWithException(error)。(可选)使用
continuation.invokeOnCancellation来注册一个清理回调,以处理协程被外部取消的情况。
Return
一个代表回调未来结果的 Deferred。
Parameters
T
期望从回调中获得的结果类型。
block
一个代码块,它接收一个 CancellableContinuation 实例作为参数。