async let, Task और रद्दीकरण
async let के साथ कार्य समानांतर रूप से चलाइए, स्वतंत्र Task बनाइए और रद्दीकरण को सहयोगात्मक ढंग से संभालिए।
async let, Task और रद्दीकरण, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
हम किन विषयों को शामिल करेंगे
आप यह करेंगे:
- async let के साथ समानांतर कार्य शुरू करना
- Task { } के माध्यम से स्वतंत्र इकाइयाँ शुरू करना
- सहकारी जाँचों का उपयोग करके रद्दीकरण पर प्रतिक्रिया देना
async let की मूल बातें
async let उसी स्कोप के भीतर चाइल्ड टास्क को समानांतर रूप से शुरू करता है; स्कोप छोड़ने से पहले आपको await करना आवश्यक है।
func loadA() async -> Int { try? await Task.sleep(nanoseconds: 200_000_000); return 1 }
func loadB() async -> Int { try? await Task.sleep(nanoseconds: 200_000_000); return 2 }
Task {
async let a = loadA()
async let b = loadB()
// Both start immediately; awaiting joins them
let sum = await (a + b)
print("sum =", sum) // 3
}स्वतंत्र Task
एक स्वतंत्र टास्क शुरू करने के लिए Task {} का उपयोग करें और उसका परिणाम पाने के लिए बाद में await t.value करें।
// Create an independent task (not tied to current scope)
func fetchMessage() async -> String {
try? await Task.sleep(nanoseconds: 150_000_000)
return "hello"
}
let t = Task { await fetchMessage() }
Task {
print("from Task:", await t.value) // waits for the independent task's result
}रद्दीकरण की मूल बातें
रद्दीकरण सहकारी होता है। Task.checkCancellation() से जाँच करें, जो त्रुटि उछालता है, या Task.isCancelled पढ़कर जल्दी लौट जाएँ।
// A long-running job that checks for cancellation
enum WorkError: Error { case cancelled }
func longJob() async throws -> Int {
var total = 0
for i in 1...10 {
try Task.checkCancellation() // throws CancellationError if cancelled
try? await Task.sleep(nanoseconds: 50_000_000)
total += i
}
return total
}
let job = Task { try await longJob() }
Task {
// Cancel after a short delay
try? await Task.sleep(nanoseconds: 120_000_000)
job.cancel()
do {
_ = try await job.value
} catch {
print("job cancelled") // expected
}
}पैरेंट → चाइल्ड रद्दीकरण
जब पैरेंट टास्क रद्द किया जाता है, तो चाइल्ड टास्क इसका पता लगाते हैं और जाँच के बाद जल्दी समाप्त हो जाने चाहिए।
// Propagate cancellation from parent to children using async let
func part(_ id: Int) async throws -> String {
try Task.checkCancellation()
try? await Task.sleep(nanoseconds: 80_000_000)
return "P\(id)"
}
Task {
do {
async let p1 = part(1)
async let p2 = part(2)
// Cancel the whole operation before awaiting
Task.currentTask?.cancel() // cancel self -> children see cancellation
let out = try await [p1, p2].joined(separator: ",")
print(out)
} catch {
print("parent cancelled; children stopped")
}
}दिशानिर्देश
सुझाव:
- समानांतर कार्यों के लिए async let का उपयोग करें; हमेशा उसी स्कोप में उन पर await करें।
task.cancel()से रद्द करें और कार्य के भीतरTask.checkCancellation()कॉल करें।- छोटे async फ़ंक्शनों को प्राथमिकता दें: उन्हें रद्द करना और उनका परीक्षण करना आसान होता है।
सहकारी रद्दीकरण का व्यवहार
त्वरित जाँच: लंबे समय तक चलने वाले async कोड को रद्दीकरण पर कैसे प्रतिक्रिया देनी चाहिए?
पुनरावलोकन
पुनरावलोकन: async let से समानांतर कार्य शुरू करें, Task {} में स्वतंत्र कार्य शुरू करें और समय पर जाँच करके तथा बाहर निकलकर सहकारी रद्दीकरण लागू करें।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “async let, Task और रद्दीकरण” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “async let, Task और रद्दीकरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“async let, Task और रद्दीकरण” में मैं क्या सीखूँगा?
async let के साथ कार्य समानांतर रूप से चलाइए, स्वतंत्र Task बनाइए और रद्दीकरण को सहयोगात्मक ढंग से संभालिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।
“async let, Task और रद्दीकरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- संरचित समवर्तीता, async फ़ंक्शन
- async let, Task और रद्दीकरण
- try await और त्रुटि प्रसार