Javascript 在gulp作业中运行异步操作

Javascript 在gulp作业中运行异步操作,javascript,gulp,Javascript,Gulp,我正在使用基于html注释更新我的html。我需要使用选项将相同的变量以这种方式传递给它的引擎: gulp.task('buildIndex', ['clean', 'copyStatic'], function () { return gulp.src('src/static/index.html').pipe(processhtml({ data: { name: 'myname' } })).pipe(gulp.dest('dist/static')); }

我正在使用基于html注释更新我的html。我需要使用选项将相同的变量以这种方式传递给它的引擎:

gulp.task('buildIndex', ['clean', 'copyStatic'], function () {
    return gulp.src('src/static/index.html').pipe(processhtml({
        data: { name: 'myname' }
    })).pipe(gulp.dest('dist/static'));
});
一切正常

现在,我需要使用异步任务检索“myname”值,例如从文件系统读取它。我怎样才能把这项新任务和我的吞流管混在一起呢


谢谢

我用Q和回复承诺的方式解决了这个问题:

var deferred = Q.defer();
myAsyncTask(function(myName) {
    gulp.src('src/static/index.html').pipe(processhtml({
        data: { name: myName }
    })).pipe(gulp.dest('dist/static')).on('end', function() {
        deferred.resolve();
    });
});
return deferred.promise;
我不知道这是不是最优雅的方式,但效果很好