Gulp “做了"什么?方法呢? [英] What does Gulp "done" method do?

查看:13
本文介绍了Gulp “做了"什么?方法呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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?

解决方案

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

这篇关于Gulp “做了"什么?方法呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆