না, এটি করার অন্য কোনও উপায় নেই - কেবলমাত্র আমি বলতে পারি যে এই ব্যবহারের ক্ষেত্রে খুব সাধারণ ঘটনা নেই। যেমন ফেলিক্স মন্তব্যে বলেছিলেন - আপনি যা করবেন তা ধারাবাহিকভাবে কাজ করবে।
এটি উল্লেখ করার মতো বিষয় যে প্রতিশ্রুতিবদ্ধ নির্মাণকারীটি এইভাবে আচরণ করে সেগুলি হ'ল নিরাপত্তা ছুঁড়ে ফেলা - যদি প্রতিশ্রুতিবদ্ধ কনস্ট্রাক্টরের অভ্যন্তরে আপনার কোডটি চলমান থাকে তখন আপনি যদি একটি অপ্রকাশের কথা অনুমান করেন নি তবে তা প্রত্যাখাত হয়ে যাবে, নিক্ষেপ সুরক্ষার এই রূপ - নিক্ষিপ্ত ত্রুটিগুলিতে রূপান্তরিত প্রত্যাখ্যান গুরুত্বপূর্ণ এবং অনুমানযোগ্য কোড বজায় রাখতে সহায়তা করে।
এই নিক্ষেপ সুরক্ষার কারণ হিসাবে, প্রতিশ্রুতিবদ্ধ নির্মাণকারীকে স্থগিত করা হয়েছে (যা একটি বিকল্প প্রতিশ্রুতি নির্মাণের উপায় যা আপনি যা করছেন তা মঞ্জুরি দেয়) - সেরা অভ্যাস হিসাবে - আমি উপাদানটি পাস করব এবং পরিবর্তে প্রতিশ্রুতি ব্যবহারকারীর ব্যবহার করব:
var p = new Promise(function(resolve, reject){
this.onclick = resolve;
}.bind(this));
এই কারণে - যখনই আপনি ফাংশন রফতানির উপর প্রতিশ্রুতিবদ্ধ নির্মাণকারীর ব্যবহার করতে পারেন - আমি আপনাকে এটি ব্যবহার করার পরামর্শ দিই। যখনই আপনি উভয় এড়াতে পারেন - উভয় এবং চেইন এড়ানো।
দ্রষ্টব্য, আপনার প্রতিশ্রুতিবদ্ধ নির্মাণকারীর মতো জিনিসগুলির জন্য কখনই ব্যবহার করা উচিত নয় if(condition)
, প্রথম উদাহরণটি এইভাবে লেখা যেতে পারে:
var p = Promise[(someCondition)?"resolve":"reject"]();
Promise
দুটি ফাংশন "রফতানি" করতে মঞ্জুরিপ্রাপ্ত কলব্যাকটি সুসংগতভাবে কার্যকর করতে হবে।