我有一系列的承诺,我需要解决它们并列出成功的列表。据我了解,我需要使用join
来做到这一点。但是,当我写:
let promises: [Promise<Request>] = /* ... */
let foo = join(promises)
我收到编译时错误Cannot invoke 'join' with argument list of type '([Promise<Request>])'
我做错了什么,或者join
无法在Swift中工作?
答案 0 :(得分:0)
由于这个问题得到了投票,我认为我应该发布我的最终解决方案。
首先,通过实施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)
}
其次,事实证明,加入并没有做我所需要的。我最后编写了自己的函数,我称之为any
。 Collect array of successful promises