class AsyncOperation: Operation { | |
var completion: () -> Void | |
init(completion: @escaping () -> Void) { | |
self.completion = completion | |
} | |
override func main() { | |
let waitForFinish = DispatchGroup() | |
waitForFinish.enter() | |
if isCancelled { waitForFinish.leave(); return } | |
CoolAsyncFunction { | |
waitForFinish.leave() | |
} | |
waitForFinish.wait() | |
completion() | |
if self.isCancelled { return } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment