import PromiseKit public extension AnyPromise { /** * Sometimes there isn't a straightforward candidate to retain a promise. In that case we tell the * promise to self retain until it completes, to avoid the risk it's GC'd before completion. */ @objc func retainUntilComplete() { var retainCycle: AnyPromise? = self _ = self.ensure { assert(retainCycle != nil) retainCycle = nil } } }