PromiseKit 6:无法使用类型为“((String,String)-> Promise<Data>)”的参数列表调用“then”
Posted
技术标签:
【中文标题】PromiseKit 6:无法使用类型为“((String,String)-> Promise<Data>)”的参数列表调用“then”【英文标题】:PromiseKit 6: Cannot invoke 'then' with an argument list of type '((String, String) -> Promise<Data>)' 【发布时间】:2018-10-19 11:43:32 【问题描述】:我有一个返回 Promise<(String, String)>
的 when(fulfilled: [Thenable])
,但是当我尝试在 then
块中使用这些参数时,我收到以下错误:
不能使用类型为 '((String, String) -> Promise) 的参数列表调用 'then'
我的代码如下:
func fetchAll(includeClosed: Bool) -> Promise<AccountInformation>
return when(fulfilled: [auth.currentUserIdPromise(), auth.getIdToken()])
.then (uid, token) in self.db.get(userID: uid, uri: "accounts", token: token)
.then /* Some more stuff */
如果不清楚,auth.currentUserIdPromise()
和 auth.getIdToken()
都解析为 String
和 db.get
返回 promise
。
我尝试过的事情:
显式表达类型 清理和构建有谁知道我该如何解决这个问题?
提前致谢:)
【问题讨论】:
【参考方案1】:我还在 GitHub 上的 PromiseKit 上发布了这个问题,结果发现我使用了错误的“何时”:
曾是:return when(fulfilled: [auth.currentUserIdPromise(), auth.getIdToken()])
现在:return when(fulfilled: auth.currentUserIdPromise(), auth.getIdToken())
前者返回一个数组,而后者返回一个元组。
https://github.com/mxcl/PromiseKit/issues/943
【讨论】:
以上是关于PromiseKit 6:无法使用类型为“((String,String)-> Promise<Data>)”的参数列表调用“then”的主要内容,如果未能解决你的问题,请参考以下文章
PromiseKit 6 在没有上下文类型的情况下无法解析对成员“值”的引用
更新 PromiseKit 后出错:无法将“PMKFinalizer”类型的值转换为预期的参数类型“Promise<Void>”
PromiseKit 无法将类型 '[Result<TYPE>]' 的值分配给类型 '[TYPE]