So führen Sie zwei Funktionen mit asynchronen Vorgängen unter iOS mithilfe von Swift @ synchron a
lets schlagen dieses Szenario vor
eine Methode mit asynchronen Netzwerkoperationen
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
}
eine andere Methode mit asynchronen Netzwerkoperationen
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
}
eine Methode, in der ich die Methoden A und B aufrufen soll, um einige Operationen durchzuführen
func displayResult
{
1) let a = asyncMethodA()
2) let b = asyncMethodB()
3) println(a + b) //some chaotic stuff might happen :(
}
so die Frage ist, wie ich das machen könnte (2) wartet auf (1) zu laufen, und (3) wartet auf (2) und so weiter (dass 1,2 und 3 synchronisiert laufen)?
(Ich weiß, dass eine Antwort ist, asyncMethodA und displayResult in asyncMethodB zu verketten, aber ich möchte wissen, ob es eine andere Methode gibt)
Danke!