【问题标题】:PromiseKit optional chaining SwiftPromiseKit 可选链式 Swift
【发布时间】:2017-07-08 01:13:05
【问题描述】:

如何进行可选承诺链接? 例如,我有两个 Promise,我必须仅根据第一个 Promise 结果中的某些条件检查第二个。

promise1(). then { result -> Promise? in
if result.success {
return promise2()
}
return nil
}
.then { secondResult -> Void in

}
.always {...}
.catch ...

但是当我编写类似这个编译器的东西时,它认为类型是 Promise?,而不是 Any(位“Any”是指任何其他类/结构)

那么,我怎样才能进行某种链接?并且像往常一样应该有一个 always 和一个 catch 处理程序。

【问题讨论】:

    标签: ios swift promisekit


    【解决方案1】:

    我想你想要这样的东西:

    let p = Promise<Int>() { fulffill, reject in
      fulffill(0)
    }.then { result -> Promise<Any>? in
      if result == 0 {
        return Promise(value: 5)
      } else if result == 1 {
        return Promise(value: "test")
      } else {
        return nil
      }
    }.then { secondResult -> Void in
      print("\(secondResult?.value)")
    }.always {
      print("Final!")
    }
    

    如果 result 为 0,则 secondResult.value 将为 Int,值为 5,如果 result 为 1,则 secondResult。值 将是“测试”。然后你可以使用第二个 Promise 中的结果来做出决定。

    【讨论】:

    • 谢谢,但是 PromiseKit 不提供返回可选的 Promise,我在 github 上问过他们
    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 2020-04-13
    • 2016-09-11
    相关资源
    最近更新 更多