done
पैरामीटर कॉलबैक नहीं है, अनाम function
कॉलबैक है। done
बस एक तर्क है कि आप पर किसी भी कारण से अपनी कॉलबैक विधि पास कर सकते हैं।
एक घूंट कार्य typically defined as है:
gulp.task('somename', function() {
// Do stuff
});
समारोह आप परिभाषित कर सकते हैं क्या कोड कार्य भीतर क्रियान्वित किया जाता है। इस कोड को किसी भी तर्क पर निर्भर है, तो आप उन्हें समारोह पैरामीटर के रूप में में पारित कर सकते हैं:
gulp.task('birthdayTask', function(name, dateOfBirth) {
doFancyStuff(name, dateOfBirth);
});
आपके मामले में, done
शायद एक और कॉलबैक है कि जैसे ही cleantask()
विधि समाप्त क्रियान्वित किया जाता है। तो जब क्लींटस्क किया जाता है तो यह कुछ प्रकार की अधिसूचना तंत्र के रूप में कार्य करेगा। हालांकि, यह आपके कोड से नहीं लिया जा सकता है, क्योंकि आपने अपने cleantask()
फ़ंक्शन का कोड प्रदान नहीं किया है, इसलिए बस अनुमान लगाएं।
var gulp = require('gulp');
// Takes in a callback so the engine knows when it'll be done
// This callback is passed in by Gulp - they are not arguments/parameters
// for your task.
gulp.task('one', function(cb) {
// Do stuff -- async or otherwise
// If err is not null and not undefined, then this task will stop,
// and note that it failed
cb(err);
});
// Identifies a dependent task must be complete before this one begins
gulp.task('two', ['one'], function() {
// Task 'one' is done now, this will now run...
});
gulp.task('default', ['one', 'two']);
किया तर्क कॉलबैक फ़ंक्शन आप अपने कार्यों को परिभाषित करने के लिए उपयोग करने में पारित कर दिया गया है:
अच्छी तरह से समझाया गया। धन्यवाद @ सीयर – Nexus23
बस जिज्ञासा है, गलप कैसे जांचता है और जानता है, अगर मैं उसे जो फ़ंक्शन देता हूं वह पैरामीटर है या नहीं? जावास्क्रिप्ट में यह कैसे संभव है? यह प्रतिबिंब की तरह लगता है। –
कॉलबैक विशेष रूप से उपयोगी होता है यदि आपको कार्य के अंदर एसिंक प्रक्रिया चलाने की आवश्यकता होती है, जबकि आप कार्य को लौटने से पहले पूरा करने के लिए प्रतीक्षा करना चाहते हैं।अन्यथा, बस स्ट्रीम लौटने के लिए पर्याप्त हो सकता है। Https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support – grtjn