Know when an iteration over array with async method is finished

后端 未结 1 1886
無奈伤痛
無奈伤痛 2020-12-06 21:44

Lets say i have an array of strings, and i call an async method that returns an int from it. I want to know when i have those int values in my array of ints.



        
相关标签:
1条回答
  • 2020-12-06 22:31

    Don't wait. Get notified with DispatchGroup.

    let rndStrings = ["a", "b", "c"]
    let group = DispatchGroup()
    var rndInts = [Int]()
    rndStrings.forEach { rndString in 
       group.enter()
       someAsyncMethod { intResult in
         rndInts.append(intResult)
         group.leave()
       }
    }
    group.notify(queue: DispatchQueue.main) {
       print("finished")
    }
    
    0 讨论(0)
提交回复
热议问题