ReactiveSwift a cette grande fonction appelée flatMapError
qui vous permet de répondre avec un flux d'événements lorsqu'une erreur survient. Un exemple simple pourrait ressembler à:PromiseKit flatMapError
authenticationProducer.flatMapError { _ in self.reauthenticate() }
Chaque fois qu'une erreur se produit, cette erreur dans un cartographiés obtient producteur qui tente de réauthentifier.
Comment créer un opérateur similaire à l'aide de PromiseKit? La signature de la fonction ressemblerait à ceci:
func flatMapError<U>(_ transform: @escaping (Error) -> Promise<U>) -> Promise<U>
Ma mise en œuvre jusqu'à présent:
func flatMapError<U>(_ transform: @escaping (Error) -> Promise<U>) -> Promise<U> {
return Promise<U> { resolve, reject in
self.catch { error in
let promise = transform(error)
let _ = promise.then { value in
resolve(value)
}
}
}
}