cancellableDeferred

创建一个 Deferred,它会挂起直到你手动通过提供的 CancellableContinuation 来恢复它。

这是将传统的回调式 API 转换为现代协程风格 Deferred 的关键桥梁。

使用方法:

  1. block 内部,启动你的回调式异步操作。

  2. 当异步操作成功时,调用 continuation.resume(result)

  3. 当异步操作失败时,调用 continuation.resumeWithException(error)

  4. (可选)使用 continuation.invokeOnCancellation 来注册一个清理回调,以处理协程被外部取消的情况。

Return

一个代表回调未来结果的 Deferred

Parameters

T

期望从回调中获得的结果类型。

block

一个代码块,它接收一个 CancellableContinuation 实例作为参数。