async await swift
// I use DispatchGroup(), group.enter(), group.leave() and group.notify(queue: .main){}. func myFunction() { let array = [Object]() let group = DispatchGroup() // initialize array.forEach { obj in // Here is an example of an asynchronous request which use a callback group.enter() // wait LogoRequest.init().downloadImage(url: obj.url) { (data) in if (data) { group.leave() // continue the loop } } } group.notify(queue: .main) { // do something here when loop finished } }