16. Asynchronous JS & Promises
📘 কনসেপ্ট (থিওরি)
জাভাস্ক্রিপ্ট সিঙ্গেল-থ্রেডেড, মানে এটি একবারে একটি কাজ করে। তবে মাঝে মাঝে কাজে সময় লাগে (যেমন সার্ভার থেকে ডেটা আনা)। **অ্যাসিঙ্ক্রোনাস** জাভাস্ক্রিপ্ট সেই দীর্ঘ কাজের অপেক্ষার সময় কোড চালিয়ে যেতে সাহায্য করে।
একটি **প্রমিস** অ্যাসিঙ্ক্রোনাস অপারেশনের চূড়ান্ত সম্পূর্ণতা (বা ব্যর্থতা) উপস্থাপন করে। প্রমিস অনেকটা এমন: "আমি কথা দিচ্ছি ডেটা এনে দেব, কিন্তু একটু সময় লাগবে।"
প্রমিসের ৩টি অবস্থা আছে:
- **Pending**: প্রাথমিক অবস্থা, সফল বা ব্যর্থ হয়নি।
- **Fulfilled**: সফলভাবে শেষ হয়েছে।
- **Rejected**: ব্যর্থ হয়েছে।
ফলাফল সামলাতে
.then() (সাফল্যের জন্য) এবং .catch() (ত্রুটির জন্য) ব্যবহার করা হয়।💡 উদাহরণ
প্রমিসের ব্যবহার:
// Fetch একটি প্রমিস রিটার্ন করে
fetch('https://jsonplaceholder.typicode.com/users/1')
.then(response => response.json()) // রেসপন্সের অপেক্ষা, JSON এ রূপান্তর
.then(data => {
console.log("User name:", data.name);
})
.catch(error => {
console.log("Error occurred!", error);
});
console.log("ডেটা আসার আগে এটি সবার আগে প্রিন্ট হবে!");
🎯 আপনার কাজ (প্র্যাকটিস)
একটি সাধারণ প্রমিস তৈরি করুন যা সাথে সাথে "Success!" স্ট্রিং দিয়ে resolve হবে। ফলাফল লগ করতে
.then() চেইন করুন।main.javascript
Loading...
OUTPUT
Run your code to see the output here...