асинхронный перебор строки

нужно перебрать массив строк через async при помощи 2х функций на выходе должен получится первоначальный порядок

func stringProccesing( _array: [String]) -> [String]{
}

func doSomething(string: String, completion: @escaping (String) -> Void) {
}

не получается передать данные в completion, что он принимает и зачем нужен? если передавать строку, то выдает ошибку Cannot convert value of type 'String' to expected argument type '(String) -> Void'


Ответы (1 шт):

Автор решения: Pavel Lazarev

Вам нужно передать в completion кусок кода, который будет выполняться, так как (String) -> Void - это замыкание

Здесь Вам нужно использовать completion так:

(пример без соблюдения логики)

func stringProccesing(_ array: [String]) -> [String] {
    let string = array[0]
    doSomething(string: string) { stringAfterDoSomething /*тип String*/ in 
       print(stringAfterDoSomething)
    }
}
→ Ссылка