का उपयोग कर iOS पर async संचालन के साथ synchronically दो कार्यों को चलाने के लिए कैसे की सुविधा देता है async नेटवर्क संचालनस्विफ्ट
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
}
async नेटवर्क संचालन के साथ एक और विधि के साथ इस परिदृश्य
एक विधि का प्रस्ताव
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
}
एक तरीका जिसमें मैं उन तरीकों को ए और बी कहूंगा, कुछ संचालन करने के लिए
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 में करने के लिए है, लेकिन अगर वहाँ किसी अन्य विधि है जानना चाहता हूँ)
धन्यवाद !.
आप जानते हैं कि आपके async कार्यों में 'वापसी result' निष्पादित किया जाता है * पहले * डाटा नेटवर्क से लिया गया किया गया है कर रहे हैं: मैं यह नवीनतम स्विफ्ट वाक्य रचना तो बस सहायक हो करने के लिए पोस्ट करने के लिए नवीनीकृत किया है? –
मुझे यह भी यकीन नहीं है कि 'परिणाम' घोषित किया गया है। –
हाँ, मैंने इसे भी देखा है ... एक और समस्या हाहा, एक संभावित समाधान वैश्विक चर का उपयोग करना है और यह जांचना है कि क्या शून्य शून्य से अलग है, लेकिन यदि आप समस्या के इस विशिष्ट उदाहरण के लिए उत्तर जानते हैं, तो यह अत्यधिक सराहना की जाएगी। –