我正在尝试读入文件,进行基于 promise 的转换并将结果推送到流中。这是示例代码。
const gulp = require('gulp')
const gutil = require('gulp-util')
const through2 = require('through2')
const fs = require('fs')
module.exports = (filePath, options) => {
return gulp.src(filePath)
.pipe(through2.obj(function (file, enc, cb) {
const result = file.contents.toString(enc)
Promise.resolve(result)
.then( result => {
cb(null, result)
})
.catch(() => {})
}))
}
出于某种原因,当 promise 解决并且我尝试调用回调时,我在下游什么也得不到,并且流永远不会完成。
我也尝试过 this.push(result) 然后调用回调,但仍然是同样的问题。任何帮助将不胜感激
最佳答案
因此,在搜索其他 gulp util 存储库后,我发现这是正确解决回调的方法:
return gulp.src(filePath)
.pipe(through2.obj(function (file, enc, cb) {
const result = file.contents.toString(enc)
Promise.resolve(result)
.then( result => {
file.contents = new Buffer(result);
this.push(file)
cb()
})
.catch(() => {})
}))
关于node.js - Gulp Stream 完成并带有 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47661288/