PromiseKit 6: Невозможно вызвать 'then' со списком аргументов типа '((String, String) -> Promise <Data>)' - PullRequest
0 голосов
/ 19 октября 2018

У меня есть when(fulfilled: [Thenable]), который возвращает Promise<(String, String)>, однако, когда я пытаюсь использовать эти аргументы в моем блоке then, я получаю следующую ошибку:

Невозможно вызвать 'then' с помощьюсписок аргументов типа '((String, String) -> Promise)

Мой код выглядит следующим образом:

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 Ответ

0 голосов
/ 19 октября 2018

Я также разместил этот вопрос в PromiseKit на GitHub, и оказалось, что я использовал неправильное «когда»:

WAS: return when(fulfilled: [auth.currentUserIdPromise(), auth.getIdToken()])

NOW: return when(fulfilled: auth.currentUserIdPromise(), auth.getIdToken())

Первый возвращает массив, а второй возвращает кортеж.

https://github.com/mxcl/PromiseKit/issues/943

...