我有一系列的承诺,我需要解决它们并列出成功的承诺。据我了解,我需要使用它join
来做到这一点。但是,当我写:
let promises: [Promise<Request>] = /* ... */
let foo = join(promises)
我收到编译时错误Cannot invoke 'join' with argument list of type '([Promise<Request>])'
我做错了什么,还是join
没有在 Swift 中工作?
我有一系列的承诺,我需要解决它们并列出成功的承诺。据我了解,我需要使用它join
来做到这一点。但是,当我写:
let promises: [Promise<Request>] = /* ... */
let foo = join(promises)
我收到编译时错误Cannot invoke 'join' with argument list of type '([Promise<Request>])'
我做错了什么,还是join
没有在 Swift 中工作?
由于这个问题得到了投票,我想我应该发布我的最终解决方案。
首先,通过实现来自http://www.drivenbycode.com/the-missing-apply-function-in-swift/join
的函数来完成对数组的调用apply
func apply<T, U>(fn: (T...) -> U, args: [T]) -> U {
typealias FunctionType = [T] -> U
return unsafeBitCast(fn, FunctionType.self)(args)
}
其次,事实证明 join 无论如何都没有做我需要的事情。我最终编写了自己的函数,我称之为any
. 收集一系列成功的承诺