Я обернутый 2 из моих запросов API с Promise < T типов > возврата:PromiseKit 2,0: цепочки обещаний не проходит аргумент
func registerWithEmail(email: String, firstName: String, lastName: String, password: String, subscribe: Bool) -> Promise<Bool>
func requestAccessTokenWithEmail(username: String, password: String) -> Promise<String>
Использование их по отдельности работает отлично:
firstly {
client.registerWithEmail("[email protected]", firstName: "john", lastName: "smith", password: "password", subscribe: false)
}.then { success -> Void in
completion(success: success)
}.catch { error -> Void in
println(error.localizedDescription)
}
И :
firstly {
client.requestAccessTokenWithEmail("[email protected]", password: "password")
}.then { accessToken -> Void in
println(accessToken)
completion(success: true)
}.catch { error -> Void in
println(error.localizedDescription)
}
Однако, когда я их связываю, аргумент токена s econd then
вызов никогда не заполняется:
firstly {
client.registerWithEmail(username, firstName: "a", lastName: "b", password: password, subscribe: false).then { success -> Void in
return client.requestAccessTokenWithEmail(username, password: password)
}.then { accessToken -> Void in
println(accessToken)
completion(success: true)
}
}
Если я нарушу внутри этого замыкания я не могу просмотреть accessToken
аргумент, только внешний completion
закрытия. Однако, если я наружу функцию requestAccessTokenWithEmail
, аргумент accessToken
заполняется при вызове fulfill
.
Я новичок в PromiseKit, поэтому, пожалуйста, дайте мне знать, если я делаю что-то глупое.
Я использую PromiseKit 2.0, Swift 1.2, Xcode 6,4