gpt4 book ai didi

javascript - 我如何保证在我的应用程序中一次性使用 gulp?

转载 作者:IT老高 更新时间:2023-10-28 23:15:21 26 4
gpt4 key购买 nike

作为我正在编写的一个小程序的一部分,我想使用 gulp 将大量文件转换为 markdown。这不是独立于程序的构建步骤的一部分。这是程序的一部分。所以我没有使用 gulpfile 来处理这个问题。

问题是,因为它是异步的,所以我想使用一个 Promise,它会在 gulp 任务完成时提醒我。

这样的东西是理想的:

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;
}

pipe 不接受回调。我怎么能处理这个?感谢您的帮助,我对 gulp 有点陌生。

最佳答案

gulp 中的所有内容都是一个流,因此您可以只监听 enderror 事件。

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;
}

顺便说一句,Q 1.0不再开发(除了这里和那里的一些修复)并且将与 Q 2.0 完全不兼容;我会推荐 Bluebird作为备选。

还值得一提的是,NodeJS 0.12 及更高版本内置了 ES6 promise (不需要 --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);
});
};

关于javascript - 我如何保证在我的应用程序中一次性使用 gulp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com