Hier ist mein Code:Wie erstelle ich ein asynchrones Gulp-Plugin?
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);
}
impliziert die callback
Parameter hat, dass die transform()
asynchron laufen kann, aber das funktioniert nicht, so dass keine Datei über das Plugin übergeben wird. in diesem speziellen Transform-Klasse getan werden muss ... tun asynchron tun, was I/O, Prozess Dinge, und so weiter ... Rückruf soll -
Dokumentation über die zugrunde liegenden stream.Transform behauptet, dass „transform() - Rufen Sie diese Funktion auf, wenn Sie den gelieferten Chunk fertig bearbeitet haben ".
Kann mir jemand zeigen, was ich falsch mache.