首页 > 解决方案 > 如何映射 Promise保证?

问题描述

我有一个Promise<T>我想转换为Guarantee<Bool>true 表示承诺已实现,如果它被拒绝则为 false 的地方。

我设法使用

  return getPromise()
    .map { _ in true }
    .recover { _ in Guarantee.value(false) }

我想知道是否有更简洁的方法来做到这一点。

标签: iospromisekit

解决方案


扩展原始代码和此处的答案,我将明确地为VoidPromises 进行扩展,并使命名与 PromiseKit 更加一致:

extension Promise where T == Void {
    func asGuarantee() -> Guarantee<Bool> {
        self.map { true }.recover { _ in .value(false) }
    }
}

推荐阅读