জাভাস্ক্রিপ্টে প্রমিসের অবস্থাসমূহ
একটি প্রমিস তিনটি অবস্থার যেকোনো একটিতে থাকতে পারে। তৈরি করার সময় প্রমিসটি অপেক্ষমান অবস্থায় থাকে (pending), তারপর এটি পূর্ণ অবস্থায় (fulfilled) পরিবর্তিত হয়ে প্রাপ্ত ফলাফল ফেরত দিতে পারে, অথবা প্রত্যাখ্যাত অবস্থায় (rejected) পরিবর্তিত হয়ে ব্যর্থতার কারণ ফেরত দিতে পারে। আপনি নিচের কোডটি চালিয়ে একটি অবস্থা থেকে অন্য অবস্থায় রূপান্তর দেখতে পারেন:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // হয় true অথবা false সেট করুন
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('error in promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // প্রতি সেকেন্ডে কনসোলে প্রমিসটি প্রিন্ট করি
}, 1000);
মনে রাখবেন যে fulfilled এবং rejected অবস্থাগুলো অপরিবর্তনীয়:一旦প্রমিসটি一旦 এই অবস্থাগুলোর যেকোনো একটিতে চলে গেলে, এটি আর অন্য অবস্থায় যেতে পারবে না। আসুন একটি উদাহরণ দিয়ে দেখি। নিচের কোডে reject কলটি আগে ঘটবে, তাই resolve কলটি উপেক্ষিত হবে:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('error')), 1000);
setTimeout(() => resolve('ignored'), 2000);
});
এমন একটি প্রমিস তৈরি করুন যা কিছু সময় পরে সাফল্যের সাথে সম্পন্ন হবে। এটিকে কনসোলে প্রিন্ট করুন এবং এর প্রারম্ভিক অবস্থা ও সমাপ্ত অবস্থা অধ্যয়ন করুন।
এমন একটি প্রমিস তৈরি করুন যা কিছু সময় পরে ব্যর্থতার সাথে সম্পন্ন হবে। এটিকে কনসোলে প্রিন্ট করুন এবং এর প্রারম্ভিক অবস্থা ও সমাপ্ত অবস্থা অধ্যয়ন করুন।