যাইহোক প্রতিশ্রুতি কি?
অ্যাসিঙ্ক্রোনাস কোড প্রতিশ্রুতি মোকাবেলা করা যেতে পারে. তারা একটি প্যারামিটার হিসাবে নির্বাহক হিসাবে পরিচিত একটি ফাংশন গ্রহণ করে। যখন একটি প্রতিশ্রুতি তৈরি করা হয়, তখন নির্বাহক স্বয়ংক্রিয়ভাবে অ্যাসিঙ্ক্রোনাসভাবে চালায় এবং যদি এটি পূরণ হয় তবে এটি প্রত্যাখ্যানের কারণ ফেরত দেয়:
উদাহরণ_প্রতিশ্রুতি দিন = নতুন প্রতিশ্রুতি ( ( সমাধান করা, প্রত্যাখ্যান করা ) => {সমাধান ( 'প্রতিশ্রুতি মীমাংসা করা হয়েছে' ) ;
} ) ;
উদাহরণ_প্রতিশ্রুতি। তারপর ( r => কনসোল লগ ( r ) ) ;
প্রতিশ্রুতির অসিঙ্ক্রোনাস প্রকৃতি:
উদাহরণ_প্রতিশ্রুতি দিন = নতুন প্রতিশ্রুতি ( ( সমাধান করা, প্রত্যাখ্যান করা ) => {
সমাধান ( 'প্রতিশ্রুতি মীমাংসা করা হয়েছে' ) ;
} ) ;
উদাহরণ_প্রতিশ্রুতি। তারপর ( r => কনসোল লগ ( r ) ) ;
কনসোল লগ ( '1,2,3...' ) ;
Promise.race() পদ্ধতি কিভাবে ব্যবহার করবেন?
Promise.race() পদ্ধতিতে একটি পুনরাবৃত্তিযোগ্য প্রতিশ্রুতি পাস করুন এবং পরিবর্তনশীল এর রিটার্ন মান পান:
prom1 যাক = নতুন প্রতিশ্রুতি ( ( সমাধান করা, প্রত্যাখ্যান করা ) => {
সেট টাইমআউট ( ( ) => সমাধান ( 'প্রতিশ্রুতি মীমাংসা করা হয়েছে' ) , 500 ) ;
} ) ;
যাক prom2 = নতুন প্রতিশ্রুতি ( ( সমাধান করা, প্রত্যাখ্যান করা ) => {
সেট টাইমআউট ( ( ) => প্রত্যাখ্যান ( 'প্রতিশ্রুতির সমাধান করা যায়নি' ) , 250 ) ;
} ) ;
তাপমাত্রা যাক = প্রতিশ্রুতি। জাতি ( [ prom1, prom2 ] ) ;
তাপমাত্রা ধরা ( কারণ => কনসোল লগ ( কারণ ) ) ;
এই উদাহরণে আমাদের দুটি প্রতিশ্রুতি ছিল। প্রথম প্রতিশ্রুতিটি 500ms পরে সমাধান করা হয়েছিল এবং দ্বিতীয় প্রতিশ্রুতিটি 250 সেকেন্ড পরে প্রত্যাখ্যান করা হয়েছিল। যেহেতু দ্বিতীয় প্রতিশ্রুতিটি প্রথমটি ছিল সমাধান করা হয়েছে বা প্রত্যাখ্যান করা হয়েছে তা Promise.race() পদ্ধতির মাধ্যমে ফিরিয়ে দেওয়া হয়েছিল।
যদি Promise.race() পদ্ধতিতে পাস করা আর্গুমেন্টটি একটি খালি পুনরাবৃত্তিযোগ্য হয় তবে পদ্ধতিটি একটি চিরতরে মুলতুবি প্রতিশ্রুতি ফিরিয়ে দেবে:
তাপমাত্রা যাক = প্রতিশ্রুতি। জাতি ( [ ] ) ;কনসোল লগ ( তাপমাত্রা ) ;
যদি আর্গুমেন্টের পুনরাবৃত্তিযোগ্য কোনো অ-প্রতিশ্রুতি মান বা প্রতিশ্রুতি থাকে যা ইতিমধ্যেই পূর্ণ বা প্রত্যাখ্যান করা হয়েছে তাহলে পদ্ধতিটি অ্যারের প্রথম মানের জন্য নিষ্পত্তি করবে:
যাক p1 = নতুন প্রতিশ্রুতি ( ( সমাধান করা, প্রত্যাখ্যান করা ) => {সমাধান ( 'P1 সমাধান করা হয়েছে' ) ;
} ) ;
যাক p2 = নতুন প্রতিশ্রুতি ( ( সমাধান করা, প্রত্যাখ্যান করা ) => {
সমাধান ( 'P2 সমাধান করা হয়েছে' ) ;
} ) ;
তাপমাত্রা যাক = প্রতিশ্রুতি। জাতি ( [ p1, p2 ] ) ;
তাপমাত্রা তারপর ( মান => কনসোল লগ ( মান ) ) ;
Promise.race() পদ্ধতি উভয় সমাধান এবং প্রত্যাখ্যাত প্রতিশ্রুতি জন্য পরীক্ষা. এই পদ্ধতির আরেকটি বিকল্প রয়েছে যা হল Promise.any() পদ্ধতি যা শুধুমাত্র পূর্ণ প্রতিশ্রুতি পরীক্ষা করার জন্য ব্যবহার করা যেতে পারে।
উপসংহার
Promise.race() পদ্ধতিটি প্রথম প্রতিশ্রুতি পাওয়ার জন্য ব্যবহার করা হয় যা প্রতিশ্রুতির পুনরাবৃত্তি থেকে পূর্ণ বা প্রত্যাখ্যান করা হয়। যে প্রতিশ্রুতিটি পূর্ণ বা প্রত্যাখ্যান করা হয় তা হল Promise.race() এর রিটার্ন মান। লেখাটি Promise.race() পদ্ধতিতে গভীর অন্তর্দৃষ্টি প্রদান করেছে।