Bry*_*son 12 javascript node.js q gulp
作为我正在编写的小程序的一部分,我想使用gulp将大量文件转换为markdown.这不是与程序分开的构建步骤的一部分.这是该计划的一部分.所以我没有使用gulpfile来处理这个问题.
问题是,因为它是异步的,我想使用一个在gulp任务完成时会提醒我的promise.
这样的事情是理想的:
io.convertSrc = function() {
var def = q.defer();
gulp.src(src + '/*.md')
.pipe(marked({}))
.pipe(gulp.dest(dist), function() {
def.resolve('We are done!');
});
return def.promise;
}
Run Code Online (Sandbox Code Playgroud)
但是pipe不接受回调.我怎么能处理这个?谢谢你的帮助,我有点新意.
Dan*_*try 16
gulp中的所有内容都是一个流,所以你可以只听end和error事.
io.convertSrc = function() {
var def = q.defer();
gulp.src(src + '/*.md')
.pipe(marked({}))
.pipe(gulp.dest(dist))
.on('end', function() {
def.resolve();
})
.on('error', def.reject);
return def.promise;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,Q 1.0不再开发(除了一些修复程序),并且与Q 2.0完全不兼容; 我推荐Bluebird作为替代品.
另外值得一提的是,NodeJS 0.12以上内置了ES6承诺(无需--harmony标记),因此如果您不寻求向后兼容性,您可以使用它们代替..
io.convertSrc = function() {
return new Promise(function(resolve, reject) {
gulp.src(src + '/*.md')
.pipe(marked({}))
.pipe(gulp.dest(dist))
.on('end', resolve)
.on('error', reject);
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3495 次 |
| 最近记录: |