1

我有一系列的承诺,我需要解决它们并列出成功的承诺。据我了解,我需要使用它join来做到这一点。但是,当我写:

let promises: [Promise<Request>] = /* ... */
let foo = join(promises)

我收到编译时错误Cannot invoke 'join' with argument list of type '([Promise<Request>])'

我做错了什么,还是join没有在 Swift 中工作?

4

1 回答 1

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)
}

其次,事实证明 join 无论如何都没有做我需要的事情。我最终编写了自己的函数,我称之为any. 收集一系列成功的承诺

于 2015-11-11T00:32:36.183 回答