यदि आप कोई स्ट्रीम नहीं लौटाते हैं, तो प्रत्येक कार्य का असीमित परिणाम उसके कॉलर द्वारा इंतजार नहीं किया जाएगा, न ही किसी भी निर्भर कार्य।
उदाहरण के लिए, जब वापस नहीं धाराओं:
$ 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
यहाँ अनुक्रम समझ में आता है, और सूचना अवधियों अपेक्षाओं को पूरा।
स्रोत
2014-09-27 20:53:32
क्या होगा यदि आपके पास एसिंक है जो कि एक गलती कार्य है लेकिन इसमें धाराएं शामिल नहीं हैं? क्या आप 'किया गया()' फ़ंक्शन कॉल कर सकते हैं या वादा वापस कर सकते हैं? – Bill
आप कार्य को परिभाषित कर सकते हैं ताकि यह कॉलबैक फ़ंक्शन को अंतिम पैरामीटर के रूप में स्वीकार कर सके, या आप एक वादा वापस कर सकते हैं। यहां देखें: https://github.com/gulpjs/gulp/blob/v3.9.1/docs/API.md#gulptaskname--deps-fn –