让我们提出这个方案
具有异步网络操作的方法
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,但想知道是否有其他方法)
谢谢你!。