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