Gulp এ কাজ করার সময়, আপনি এই ত্রুটিটি দেখতে পারেন:
The following tasks did not complete... Did you forget to signal async completion?
এটি ঘটছে কারণ Gulp 4-এ সমস্ত কাজ স্বয়ংক্রিয়ভাবে অ্যাসিঙ্ক্রোনাস।
সিঙ্ক্রোনাস ফাংশন একের পর এক এক্সিকিকিউট করে, এবং প্রতিটি ফাংশনকে অপেক্ষা করতে হবে যতক্ষণ না পূর্বের ফাংশনটি চলার আগে সম্পূর্ণ হয়। অন্যদিকে, অ্যাসিঙ্ক্রোনাস ফাংশনগুলি আগের ফাংশনের ফলাফলের জন্য অপেক্ষা করার সময়ও চলতে শুরু করতে পারে৷
এটি প্রক্রিয়াগুলিকে আরও দক্ষ করে তোলে কারণ সেগুলি ব্লক করা হয়নি। কিন্তু একটি ফাংশন কখন শেষ হয়েছে তা জানার জন্য, আমাদের তাদের সুস্পষ্ট সংকেত ফেরত দিতে হবে যে তারা সম্পন্ন হয়েছে। বেশিরভাগ গুলপ কাজ যেমন src()
অথবা dest()
একটি নোড স্ট্রীম ফিরিয়ে দেবে, তাই আপনাকে এটি নিয়ে চিন্তা করতে হবে না।
যাইহোক, যদি আপনার একটি কাস্টম ফাংশন থাকে যা একটি স্ট্রিম ফেরত না দেয়, তাহলে আপনাকে এটির শেষে একটি কলব্যাক ফাংশন যোগ করতে হবে। অন্যথায় আপনি সেই ত্রুটি বার্তা পাবেন৷
৷ত্রুটি ঠিক করতে, আপনাকে এই উদাহরণের মতো একটি কলব্যাক ফাংশন যোগ করতে হবে:
function helloWorld(cb){
console.log('Hellooooo world!');
cb();
}
এই helloWorld
-এ ফাংশন, আমরা cb()
যোগ করেছি কলব্যাক ফাংশন যা আমরা একটি প্যারামিটার হিসাবে সেট করি এবং তারপর ফাংশনের শেষে আহ্বান করি। এটি যোগ করা অ্যাসিঙ্ক সম্পূর্ণ হওয়ার সংকেত দেবে, এবং সেই ত্রুটিটি ঘটছে তা ঠিক করা উচিত৷
আপনি যদি Gulp সেট আপ করার বিষয়ে আরও গভীর তথ্য চান, তাহলে আমার কোর্সটি দেখুন, নতুনদের জন্য Gulp 4!