0
假设您的承诺链中有一个分支,可以返回任何内容或AnyObject承诺。你会指定什么作为'then'闭包的返回类型?例如:PromiseKit分支承诺
func sample() -> Promise<AnyObject> {
return Promise { fulfill, reject in
fulfill(1)
}
.then { _ -> Void in
if false {
return Promise { fulfill, reject in
fulfill(0)
}
}
}
}
如果我把Void作为'then'闭包的返回类型,我得到一个seg故障;如果我把Promise作为返回类型,那么我得到一个错误:
missing return in a closure expected to return Promise<AnyObject>
有什么建议吗?
谢谢
如果使用'Promise'作为返回类型,则必须返回一个Promise。现在你只能在'if false'的情况下这样做,永远不会执行。 – jtbandes
如果我改变为'FUNC样品() - >无极 { 返回无极{履行,拒绝 满足(1) }。然后{_ - >在 debugPrint( “foo” 的)空隙 }。然后{ _ - >无极在 如果假{ 回报承诺{履行,拒绝 落实(0) } } 回报承诺{履行,拒绝 履行(0) } } }'它的工作原理;但似乎有点跛脚,我不得不明确地返回一个空的承诺@jtbandes –
bunana
你的目标是什么?为什么你有这个'假'分支? – jtbandes