PromiseKit 如何将“when(resolved)”作为承诺返回?
Posted
技术标签:
【中文标题】PromiseKit 如何将“when(resolved)”作为承诺返回?【英文标题】:PromiseKit how to return "when(resolved)" as a promise? 【发布时间】:2017-10-22 23:23:29 【问题描述】:我有一系列看起来像这样的函数:
func getA() -> Promise<Void>
// code
func getB() -> Promise<Void>
// code
func getC() -> Promise<Void>
// code
我想在所有这些都完成后返回一个 Promise。这是我尝试过的:
func getStuff() -> Promise<[Result<Void>]>
return when(resolved: [getA(), getB(), getC()])
但我收到编译错误:'Result' is ambiguous for type lookup in this context
。我怎样才能做到这一点?
【问题讨论】:
This answer 可能会有所帮助。 【参考方案1】:func getStuff() -> Promise<[PromiseKit.Result<Void>]>
return when(resolved: [getA(), getB(), getC()])
【讨论】:
【参考方案2】:在你的代码中有几个名为 Result
的东西,你需要告诉 Swift 在这种情况下 Result
指的是 PromiseKit.Result 或使用 Resolution
假设它没有在命名空间中并且你没有关心相关的ErrorConsumptionToken。
func getStuff() -> Promise<[Resolution<Void>]>
return when(resolved: [getA(), getB(), getC()])
【讨论】:
以上是关于PromiseKit 如何将“when(resolved)”作为承诺返回?的主要内容,如果未能解决你的问题,请参考以下文章