Вот мой код:Как создать асинхронный плагин Gulp?
const through = require('through2');
function gulpPlugin() {
let filesCount = 0;
function transform(file, encoding, callback) {
if (file.stat.isDirectory())
return callback();
Promise.all([promise1(file), promise2(file)]).then(function(values) {
if (values[0] === values[1]) {
this.push(file);
++filesCount;
}
callback();
});
}
function flush(callback) {
console.log('files:', filesCount);
callback();
}
return through.obj(transform, flush);
}
Имея параметр callback
означает, что transform()
может выполняться асинхронно, однако это не работает, так что ни один файл не получает передается через плагин.
Документация по нижележащих stream.Transform утверждает, что «преобразование() - должны делать все, что должно быть сделано в этом конкретном Transform класс ... сделать асинхронный I/O, процесс вещей, и так далее ... Обратный вызов - вызовите эту функцию, когда вы закончите обработку поставляемого блока ».
Может ли кто-нибудь указать мне, что я делаю неправильно.