Javascript 狼吞虎咽';默认值';任务在不运行回调的情况下完成

Javascript 狼吞虎咽';默认值';任务在不运行回调的情况下完成,javascript,gulp,Javascript,Gulp,我最近从Gulp3升级到了4-我有升级指南,并修改了我的代码以适应,但我仍然有一些奇怪的行为 以下是一个小的可重复案例: gulp.task('do-nothing', function (done) { setTimeout(function () { done() }, 3 * 1000) }) gulp.task("default", gulp.parallel("do-nothing"), function (done) { console.lo

我最近从Gulp3升级到了4-我有升级指南,并修改了我的代码以适应,但我仍然有一些奇怪的行为

以下是一个小的可重复案例:

gulp.task('do-nothing', function (done) {
    setTimeout(function () {
        done()
    }, 3 * 1000)
})

gulp.task("default", gulp.parallel("do-nothing"), function (done) {
    console.log(`\n\n\nWHY AM I NOT BEING RUN`)
})
运行
gulp
时,输出为:

[14:10:57] Using gulpfile ~\Code\certsimple\gulpfile.js
[14:10:57] Starting 'default'...
[14:10:57] Starting 'do-nothing'...
[14:11:00] Finished 'do-nothing' after 3.01 s
[14:11:00] Finished 'default' after 3.02 s
没有
为什么我没有被运行
打印到控制台


为什么会这样?

这应该是有效的

gulp.task('do-nothing', function (done) {
    setTimeout(function () {
        done()
    }, 3 * 1000)
})

gulp.task("default",

    gulp.parallel("do-nothing", function (done) {
      console.log(`\n\n\nWHY AM I NOT BEING RUN`)
      done()
    })

);

这应该是有效的

gulp.task('do-nothing', function (done) {
    setTimeout(function () {
        done()
    }, 3 * 1000)
})

gulp.task("default",

    gulp.parallel("do-nothing", function (done) {
      console.log(`\n\n\nWHY AM I NOT BEING RUN`)
      done()
    })

);
这就是你要找的,函数是gulp.task的第三个参数,对我来说,它不起作用。类似地,仅以一个任务作为输入的gulp.parallel应该与tast本身相同

这就是你要找的,函数是gulp.task的第三个参数,对我来说,它不起作用。类似地,仅使用一个任务作为输入的gulp.parallel应该与tast本身相同。

您有这一行:

gulp.task("default", gulp.parallel("do-nothing"), function (done) {
请注意,它有三个参数:字符串任务名称gulp.parallel()和匿名函数调用。这就是gulp3语法。以下是gulp4
任务
函数签名:

task([taskName], taskFunction)  // note only **two** arguments.

这就是为什么永远无法访问
控制台.log
。因此,您只需将匿名函数放入
gulp.parallel
参数中即可修复它

gulp.task("default", gulp.parallel("do-nothing", function (done) {
    console.log(`\n\n\nWHY AM I NOT BEING RUN`)
}));
另外,由于您使用的是
gulp.parallel
console.log
不会等待
什么都不做
完成。

您有这一行:

gulp.task("default", gulp.parallel("do-nothing"), function (done) {
请注意,它有三个参数:字符串任务名称gulp.parallel()和匿名函数调用。这就是gulp3语法。以下是gulp4
任务
函数签名:

task([taskName], taskFunction)  // note only **two** arguments.

这就是为什么永远无法访问
控制台.log
。因此,您只需将匿名函数放入
gulp.parallel
参数中即可修复它

gulp.task("default", gulp.parallel("do-nothing", function (done) {
    console.log(`\n\n\nWHY AM I NOT BEING RUN`)
}));

另外,由于您正在使用
gulp.parallel
console.log
不会等待
什么都不做
完成。

尝试添加返回到
setTimeout
尝试添加返回到
setTimeout