2015-11-03 27 views
1

我有一個承諾的數組,我需要解決它們,並採取成功的列表。據我所知,我需要使用join來做到這一點。然而,當我寫:加入失敗PromiseKit 3.0

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

我得到一個編譯時錯誤Cannot invoke 'join' with argument list of type '([Promise<Request>])'

難道我做錯了什麼,或者沒有在斯威夫特工作join

回答

0

由於這個問題已經投票了,我想我應該發佈我最終的解決方案。

首先,調用join與陣列通過實施apply功能從http://www.drivenbycode.com/the-missing-apply-function-in-swift/

func apply<T, U>(fn: (T...) -> U, args: [T]) -> U { 
    typealias FunctionType = [T] -> U 
    return unsafeBitCast(fn, FunctionType.self)(args) 
} 

其次完成,事實證明,加入並沒有做什麼,我需要反正。我結束了寫我自己的功能,我叫anyCollect array of successful promises