2014-09-27 6 views
38

ऑनलाइन उदाहरणों में गल्प का उपयोग दिखाते हुए, कुछ कार्य स्ट्रीम वापस करते हैं और अन्य नहीं करते हैं।क्या एक गलती कार्य को कुछ भी वापस करना है?

उदाहरण के लिए, एक वापसी के बिना:

gulp.task('tsc', function() 
{ 
    gulp.src('**/*.ts') 
     // ... 
}); 

और एक ही कोड, वापसी के साथ:

gulp.task('tsc', function() 
{ 
    return gulp.src('**/*.ts') 
     // ... 
}); 

यह धारा वापस जाने के लिए आवश्यक है?

उत्तर

35

यदि आप कोई स्ट्रीम नहीं लौटाते हैं, तो प्रत्येक कार्य का असीमित परिणाम उसके कॉलर द्वारा इंतजार नहीं किया जाएगा, न ही किसी भी निर्भर कार्य।

उदाहरण के लिए, जब वापस नहीं धाराओं:

$ gulp scripts 
[21:25:05] Using gulpfile ~/my-project/gulpfile.js 
[21:25:05] Starting 'tsc'... 
[21:25:05] Finished 'tsc' after 13 ms 
[21:25:05] Starting 'scripts'... 
[21:25:05] Finished 'scripts' after 10 ms 
[21:25:05] Compiling TypeScript files using tsc version 1.0.1.0 

यहाँ ध्यान दें कि scripts कार्य tsc काम पर निर्भर करता है। यह रिपोर्ट करता है कि tsc 13 मिलीसेकंड में पूरा हो गया है, जो निश्चित रूप से माना जाने वाला बहुत तेज़ है। फिर scripts कार्य शुरू होने और फिर से शुरू होने लगता है, फिर से बहुत ही कम समय में। अंत में, tsc द्वारा किए गए वास्तविक ऑपरेशन शुरू होते हैं। स्पष्ट रूप से न तो tsc और न ही scripts संकलन चरण को पूरा करने के लिए इंतजार कर रहा था।

जब इन कार्यों को उनकी स्ट्रीम लौटने के लिए, उत्पादन नहीं बल्कि अलग दिखता है:

$ gulp scripts 
[21:42:25] Using gulpfile ~/my-project/gulpfile.js 
[21:42:25] Starting 'tsc'... 
[21:42:25] Compiling TypeScript files using tsc version 1.0.1.0 
[21:42:32] Finished 'tsc' after 6.65 s 
[21:42:32] Starting 'scripts'... 
[21:42:32] Finished 'scripts' after 204 ms 

यहाँ अनुक्रम समझ में आता है, और सूचना अवधियों अपेक्षाओं को पूरा।

+7

क्या होगा यदि आपके पास एसिंक है जो कि एक गलती कार्य है लेकिन इसमें धाराएं शामिल नहीं हैं? क्या आप 'किया गया()' फ़ंक्शन कॉल कर सकते हैं या वादा वापस कर सकते हैं? – Bill

+1

आप कार्य को परिभाषित कर सकते हैं ताकि यह कॉलबैक फ़ंक्शन को अंतिम पैरामीटर के रूप में स्वीकार कर सके, या आप एक वादा वापस कर सकते हैं। यहां देखें: https://github.com/gulpjs/gulp/blob/v3.9.1/docs/API.md#gulptaskname--deps-fn –

संबंधित मुद्दे