Javascript 在gulp作业中运行异步操作
我正在使用基于html注释更新我的html。我需要使用选项将相同的变量以这种方式传递给它的引擎: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')); }
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;
我不知道这是不是最优雅的方式,但效果很好