首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PromiseKit可选链Swift

PromiseKit可选链Swift
EN

Stack Overflow用户
提问于 2017-02-18 21:59:46
回答 1查看 586关注 0票数 0

我怎样才能做出可选的承诺链?例如,我有两个承诺,我必须根据第一个承诺结果中的一些条件来检查第二个承诺。

代码语言:javascript
复制
promise1(). then { result -> Promise? in
if result.success {
return promise2()
}
return nil
}
.then { secondResult -> Void in

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

但是当我编写类似这样的代码时,编译器认为类型是Promise?,而不是Any (比特" any“我指的是任何其他类/结构)

那么,我如何才能进行某种链式操作呢?并且应该像往常一样有一个总是和一个捕获处理程序。

EN

回答 1

Stack Overflow用户

发布于 2017-02-18 23:55:56

我认为你想要这样的东西:

代码语言:javascript
复制
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,则测试将为Int值为5,如果result为1,则secondResult.value将为“secondResult.value”。然后,您可以使用第二个Promise中的结果来做出决定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42316074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档