jQuery এর Deferred
দুটি ফাংশন রয়েছে যা ফাংশনগুলির অ্যাসিনক্রোনাস চেইন প্রয়োগ করতে ব্যবহার করা যেতে পারে:
then()
deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred
ডেলক্যালব্যাকস একটি ফাংশন, বা ফাংশনগুলির অ্যারে, যখন মুলতুবি সমাধান করা হয় called
ফেলক্যালব্যাকস একটি ফাংশন, বা ডিফল্ট প্রত্যাখ্যান করা হলে ফাংশনগুলির অ্যারে।
pipe()
deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise
সম্পন্ন ফিল্টার একটি alচ্ছিক ফাংশন যা ডারফার্ড সমাধান হওয়ার পরে ডাকা হয়।
ফেলফিল্টার একটি alচ্ছিক ফাংশন যা ডারফার্ড প্রত্যাখ্যাত হলে ডাকা হয়।
আমি জানি then()
যে এর চেয়ে আরও কিছুটা দীর্ঘ সময় হয়েছে pipe()
তবে পরবর্তীকর্তাকে অবশ্যই কিছু অতিরিক্ত বেনিফিট যুক্ত করতে হবে, তবে পার্থক্যটি স্পষ্টতই আমাকে অন্তর্ভুক্ত করে। উভয়ই একই কলব্যাকের পরামিতিগুলি গ্রহণ করে যদিও তারা নামের সাথে পৃথক হয় এবং একটি Deferred
ফেরত দেওয়া এবং ফেরত দেওয়ার মধ্যে পার্থক্য Promise
সামান্য মনে হয়।
আমি সরকারী দস্তাবেজগুলি বারবার পড়েছি তবে সবসময় তাদের খুব "ঘন" বলে আমার মাথা ঘিরে রাখে এবং অনুসন্ধানে একটি বৈশিষ্ট্য বা অন্যটির প্রচুর আলোচনার সন্ধান পেয়েছে তবে আমি এমন কিছু খুঁজে পাইনি যা সত্যই আলাদাভাবে স্পষ্ট করে প্রতিটি ভাল এবং কনস।
সুতরাং কখন এটি ব্যবহার করা ভাল then
এবং কখন এটি ব্যবহার করা ভাল pipe
?
সংযোজন
ফেলিক্সের দুর্দান্ত উত্তরটি এই দুটি ফাংশন কীভাবে পৃথক রয়েছে তা স্পষ্ট করে বলতে সহায়তা করেছে। কিন্তু আমি ভাবছি যদি সেখানে বার যখন কার্যকারিতা then()
যে বাঞ্ছনীয় pipe()
।
এটি স্পষ্টত যা pipe()
তার চেয়ে বেশি শক্তিশালী then()
এবং মনে হয় প্রাক্তন পরবর্তীকালে কিছু করতে পারে। ব্যবহারের একটি কারণ then()
হতে পারে এটির নাম একই ডেটা প্রক্রিয়াজাতকরণের একটি শৃঙ্খলা সমাপ্তির ভূমিকা হিসাবে এর ভূমিকা প্রতিবিম্বিত করে।
তবে এমন কোনও ব্যবহারের কেস রয়েছে যার জন্য then()
নতুনটি ফেরার কারণে এটি Deferred
করা যায় না এমন আসলটি ফেরত দেওয়া দরকার ?pipe()
Promise