for await...of
'for await...of' স্টেটমেন্ট একটি লুপ তৈরি করে যা অ্যাসিন্ক (async) অবজেক্ট এবং সিঙ্ক (sync) অবজেক্ট (যেমন অ্যারে, অ্যারে-লাইক অবজেক্ট, ম্যাপ, সেট ইত্যাদি) এর ওপর ইটারেট করে।
সিনট্যাক্স
for await (variable of iterable) { statement }উদাহরণ
নিচের উদাহরণে "for await...of" স্টেটমেন্ট ব্যবহার করে একটি নরম্যাল অ্যারেতে অ্যাসিন্ক ফরম্যাটে লুপ করা হয়েছে এবং ১ থেকে ৫ পর্যন্ত INTEGER আউটপুটে দেখানো হয়েছে।
<html> <body> <script> var txt = ""; const array = [1,2,3,4,5]; async function test() { for await (const p of array) { var txt = p + "<br>"; document.write(txt); } } test(); </script> </body> </html>আউটপুট
1 2 3 4 5
একটি অ্যাসিন্ক ফাংশনকে লুপে কল করতে একটি নতুন Symbol "Symbol.asyncIterator" এবং "for-await...of" কনস্ট্রাক্ট ব্যবহার করা হয়। সবচেয়ে গুরুত্বপূর্ণভাবে "for-await...of" অ্যাসিন্ক ইটারেবল অবজেক্টের ওপর লুপ করার জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।
উদাহরণ
নিচের উদাহরণে "for await...of" ব্যবহার করে, যা একটি অ্যাসিন্ক ইটারেবল-এর ওপর ইটারেট করে, ১ থেকে ৫ পর্যন্ত INTEGER দেখানো হয়েছে।
<html> <body> <script> var txt = ""; var async = { [Symbol.asyncIterator]() { return { i: 1, next() { if (this.i < 6) { return Promise.resolve({ value: this.i++, done : false}); } } }; } }; async function test() { for await (let p of async) { txt = p + "<br>" document.write(txt); } } test(); </script> </body> </html>আউটপুট
1 2 3 4 5