Future, async, এবং await এর ব্যবহার
Dart-এ Future, async, এবং await অ্যাসিনক্রোনাস প্রোগ্রামিংয়ের গুরুত্বপূর্ণ অংশ। এগুলি ডেটা বা কাজের ফলাফলগুলি আসার জন্য অপেক্ষা করার একটি সহজ উপায় প্রদান করে। আসুন এগুলোর ব্যবহার এবং উদাহরণ দেখি।
১. Future
Future একটি অবজেক্ট যা ভবিষ্যতে একটি মান বা ত্রুটি প্রদান করে। এটি মূলত একটি কাজের ফলাফল প্রতিনিধিত্ব করে যা এখনও সম্পন্ন হয়নি।
Future তৈরি করা
Future<String> fetchData() {
return Future.delayed(Duration(seconds: 2), () {
return "Data fetched!";
});
}
এই উদাহরণে, fetchData ফাংশন একটি Future<String> ফেরত দেয়, যা 2 সেকেন্ড পরে "Data fetched!" ফেরত দেবে।
২. async
async কিওয়ার্ড ব্যবহার করে একটি ফাংশনকে অ্যাসিনক্রোনাস করা হয়। যখন আপনি একটি ফাংশনকে async করেন, তখন আপনি await কিওয়ার্ড ব্যবহার করতে পারেন।
Async ফাংশন উদাহরণ
Future<String> fetchData() async {
return Future.delayed(Duration(seconds: 2), () {
return "Data fetched!";
});
}
void main() async {
String data = await fetchData();
print(data); // Output: Data fetched!
}
এখানে, fetchData ফাংশন async হিসাবে চিহ্নিত করা হয়েছে, এবং await ব্যবহার করে এটি Future থেকে মানটি অপেক্ষা করে।
৩. await
await কিওয়ার্ড ব্যবহার করে আপনি একটি Future এর ফলাফল পাওয়ার জন্য অপেক্ষা করতে পারেন। এটি শুধুমাত্র async ফাংশনের মধ্যে ব্যবহার করা যায়।
Await উদাহরণ
Future<void> main() async {
print("Fetching data...");
String data = await fetchData(); // fetchData() থেকে ফলাফল পাওয়া
print(data); // Output: Data fetched!
}
পুরো উদাহরণ
নিচে একটি সম্পূর্ণ উদাহরণ দেওয়া হলো যেখানে Future, async, এবং await ব্যবহার করা হয়েছে:
Future<String> fetchData() async {
return Future.delayed(Duration(seconds: 3), () {
return "Data fetched!";
});
}
Future<void> main() async {
print("Fetching data...");
String data = await fetchData(); // Awaiting the future
print(data); // Output: Data fetched!
}
উপসংহার
Future, async, এবং await Dart-এ অ্যাসিনক্রোনাস প্রোগ্রামিংয়ের গুরুত্বপূর্ণ অংশ। এগুলি কোড লেখার প্রক্রিয়াকে সহজ করে এবং উন্নত পারফরম্যান্স এবং ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করে। আপনি যখন দীর্ঘস্থায়ী কাজগুলির ফলাফল পেতে চান, তখন এগুলির মাধ্যমে সঠিকভাবে অ্যাসিনক্রোনাস কোড লেখা যায়।
Read more