// // Promise+Error.swift // then // // Created by Sacha Durand Saint Omer on 20/02/2017. // Copyright © 2017 s4cha. All rights reserved. // import Foundation public extension Promise { @discardableResult public func onError(_ block: @escaping (Error) -> Void) -> Promise { tryStartInitialPromiseAndStartIfneeded() return registerOnError(block) } @discardableResult public func registerOnError(_ block: @escaping (Error) -> Void) -> Promise { let p = Promise() passAlongFirstPromiseStartFunctionAndStateTo(p) syncStateWithCallBacks( success: { _ in p.fulfill(()) }, failure: { e in block(e) p.fulfill(()) }, progress: p.setProgress ) p.start() return p } }