What does Gulp “done” method do?

て烟熏妆下的殇ゞ 提交于 2019-11-30 14:41:45

问题


Just a simple question to clarify what does parameter "done" in a gulp task do?

I understand, this is the callback in task function as shown below.

gulp.task('clean', function(done) {
    // so some stuff
    creategulptask(cleantask(), done);
});

But what is the reason to pass it?


回答1:


The gulp documentation specifies something similar to the following:

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']);

The done argument is passed into the callback function you use to define your tasks.

Your task function can "accept a callback" function parameter (often this function parameter is named done). Executing that done function tells Gulp "a hint to tell it when the task is done".

Gulp needs this hint if you want to order a series of tasks that depend on each other, as shown in the above example. (i.e. task two won't begin until task one calls cb()) In essence, it stops tasks from running concurrently if you don't want them to.

You can read more about this here: https://github.com/gulpjs/gulp/blob/master/docs/API.md#async-task-support



来源:https://stackoverflow.com/questions/29694425/what-does-gulp-done-method-do

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!