Как синхронно запустить две функции с асинхронными операциями на iOS с помощью Swift
давайте предложим этот сценарий
метод с асинхронными сетевыми операциями
func asyncMethodA() -> String?
{
result : String?
Alamofire.manager.request(.POST, "https://www.apiweb.com/apimethod", parameters: parameters, encoding:.JSON)
.response { (request, response, rawdata, error) in
if (response?.statusCode == 200)
{
//DO SOME HEAVY LIFTING
}
}
return result //string
}
другой метод с асинхронными сетевыми операциями
func asyncMethodB() -> String?
{
result : String?
Alamofire.manager.request(.POST, "https://www.yetanotherapiweb.com/apimethod", parameters: parameters, encoding:.JSON)
.response { (request, response, rawdata, error) in
if (response?.statusCode == 200)
{
//DO SOME HEAVY LIFTING
}
}
return result //string
}
метод, в котором я буду вызывать эти методы A и B, чтобы сделать некоторые операции
func displayResult
{
1) let a = asyncMethodA()
2) let b = asyncMethodB()
3) println(a + b) //some chaotic stuff might happen :(
}
Итак, вопрос в том, как я могу сделать так, чтобы (2) ожидал выполнения (1) и (3) ожидал (2) и т. д. (чтобы 1,2 и 3 выполнялись синхронно)?
(я знаю, что один из ответов - объединить asyncMethodA и displayResult в asyncMethodB, но я хочу знать, есть ли другой метод)
благодарю вас!.