当前位置: 首页 > 面试题库 >

如何强制gulp调用同步运行?

楚嘉纳
2023-03-14
问题内容

我希望下面的gulp调用一个接一个地同步运行。但是他们不服从命令。

在运行序列节点模块没有帮助在这里,因为我并不想串联运行一饮而尽任务(即它的语法类似于gulp.task("mytask", ["foo", "bar", "baz"]等等),而是吞掉串联“来电”,你见下文。

gulp.task("dostuff", function (callback) {

  gulp
    .src("...")
    .pipe(gulp.dest("...");

  gulp
    .src("...")
    .pipe(gulp.dest("...");

  gulp
    .src("...")
    .pipe(gulp.dest("...");

  callback();
});

如何使它们一个接一个地运行?


问题答案:

您可以将 异步
用作呼叫的控制流,以仅使它们完成一个任务,也避免了获得“金字塔效应”。因此,这样的事情对于您的用例应该是好的:

var async = require('async');

gulp.task('yeah', function (cb) {
  async.series([
    function (next) {
      gulp.src('...')
        .pipe(gulp.dest('...')
        .on('end', next);
    },
    function (next) {
      gulp.src('...')
        .pipe(gulp.dest('...')
        .on('end', next);
    },
    function (next) {
      gulp.src('...')
        .pipe(gulp.dest('...')
        .on('end', next);
    }
  ], cb);
});

这还将使您能够进行一些错误处理,并更好地定位发生问题的位置。



 类似资料:
  • 我正在为一家德国公司评估Dart,将各种Java程序移植到Dart,并对结果进行比较和分析。在浏览器中,飞镖轻松获胜。对于服务器来说,软件性能似乎是一个严重的问题(请看我的这个问题),但这基本上得到了缓解。 现在我正在移植一些“简单”的命令行工具,我没想到会有任何严重的问题,但至少有一个问题。一些工具确实会发出HTTP请求来收集一些数据,独立的Dart虚拟机只以异步方式支持它们。纵观所有我能找到的

  • 了解如何使用DevTools诊断强制同步布局。 在本指南中,您通过一个demo来识别和解决问题,了解如何调试强制同步布局。 演示动画图像使用requestAnimationFrame(), 这是基于帧的动画的推荐方法。 然而,在动画中有相当多的卡顿。你的目标是确定卡顿的原因并解决这个问题,让demo中的动画能够达到顺滑的60 FPS。 收集数据 首先,您需要收集数据,以便您可以准确了解页面运行时会

  • RestTemplate文档中的Spring注意: 注意:从5.0开始,这个类处于维护模式,只接受微小的更改请求和bug。请考虑使用org.springframework.web.reactive.client.WebClient,它具有更现代的API,支持同步、异步和流场景。 https://docs.spring.io/spring-framework/docs/current/javadoc

  • 问题内容: 有什么方法可以使用AngularJS进行同步调用吗? AngularJS文档不是很明确,也不是为了找出一些基本内容而扩展。 在服务上: 问题答案: 不是现在。如果查看源代码(从2012年10月开始),您会发现对XHR open的调用实际上是硬编码为异步的(第三个参数为true): 您需要编写自己的执行同步调用的服务。通常,由于JavaScript执行的性质,您通常不需要执行此操作,最终

  • 本文向大家介绍详解java 三种调用机制(同步、回调、异步),包括了详解java 三种调用机制(同步、回调、异步)的使用技巧和注意事项,需要的朋友参考一下 1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口; 3:异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到

  • 假设你有两个线程,一个向数据结构中填充数据,另一个读取数据结构中的数据。为了避免恶性条件竞争,第一个线程设置一个标志,用来表明数据已经准备就绪,并且第二个线程在这个标志设置前不能读取数据。下面的程序清单就是这样的情况。 清单5.2 不同线程对数据的读写 #include <vector> #include <atomic> #include <iostream> std::vector<int>