我怎样才能做出可选的承诺链?例如,我有两个承诺,我必须根据第一个承诺结果中的一些条件来检查第二个承诺。
promise1(). then { result -> Promise? in
if result.success {
return promise2()
}
return nil
}
.then { secondResult -> Void in
}
.always {...}
.catch ...但是当我编写类似这样的代码时,编译器认为类型是Promise?,而不是Any (比特" any“我指的是任何其他类/结构)
那么,我如何才能进行某种链式操作呢?并且应该像往常一样有一个总是和一个捕获处理程序。
发布于 2017-02-18 23:55:56
我认为你想要这样的东西:
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中的结果来做出决定。
https://stackoverflow.com/questions/42316074
复制相似问题