गल्प में काम करते समय, आपको यह त्रुटि आ सकती है:
The following tasks did not complete... Did you forget to signal async completion?
ऐसा इसलिए होता है क्योंकि गल्प 4 में सभी कार्य स्वचालित रूप से अतुल्यकालिक होते हैं।
सिंक्रोनस फ़ंक्शन एक के बाद एक निष्पादित होते हैं, और प्रत्येक फ़ंक्शन को तब तक प्रतीक्षा करनी चाहिए जब तक कि पिछले एक के स्वयं के चलने से पहले पूरा न हो जाए। दूसरी ओर, अतुल्यकालिक फ़ंक्शन पिछले कार्यों के परिणाम की प्रतीक्षा करते हुए चलना शुरू कर सकते हैं।
यह प्रक्रियाओं को अधिक कुशल बनाता है क्योंकि वे अवरुद्ध नहीं हैं। लेकिन यह जानने के लिए कि कोई फ़ंक्शन कब पूरा हो गया है, हमें उन्हें स्पष्ट संकेतक वापस करने की आवश्यकता है कि वे किए गए हैं। अधिकांश गल्प कार्य जैसे src()
या dest()
एक नोड स्ट्रीम लौटाएगा, इसलिए आपको इसके बारे में चिंता करने की ज़रूरत नहीं होगी।
हालाँकि, यदि आपके पास एक कस्टम फ़ंक्शन है जो एक स्ट्रीम नहीं लौटा रहा है, तो आपको इसके अंत में एक कॉलबैक फ़ंक्शन जोड़ना होगा। अन्यथा आपको वह त्रुटि संदेश प्राप्त होगा।
त्रुटि को ठीक करने के लिए, आपको इस उदाहरण में कॉलबैक फ़ंक्शन जोड़ने की आवश्यकता होगी:
function helloWorld(cb){
console.log('Hellooooo world!');
cb();
}
इसमें helloWorld
फ़ंक्शन, हमने cb()
. जोड़ा है कॉलबैक फ़ंक्शन जिसे हम एक पैरामीटर के रूप में सेट करते हैं, और फिर फ़ंक्शन के अंत में आह्वान करते हैं। इसे जोड़ने से एसिंक्स के पूरा होने का संकेत मिलेगा, और उस त्रुटि को ठीक करना चाहिए।
अगर आप गल्प को कैसे सेट अप करें, इस बारे में और अधिक गहन जानकारी चाहते हैं, तो मेरा कोर्स, गल्प 4 फॉर बिगिनर्स देखें!