In https://stackoverflow.com/a/18658613/779159 finden Sie ein Beispiel für die Berechnung des MD5 einer Datei mithilfe der integrierten Kryptobibliothek und der integrierten Streams.
var fs = require('fs');
var crypto = require('crypto');
// the file you want to get the hash
var fd = fs.createReadStream('/some/file/name.txt');
var hash = crypto.createHash('sha1');
hash.setEncoding('hex');
fd.on('end', function() {
hash.end();
console.log(hash.read()); // the desired sha1sum
});
// read all file and pipe it (write it) to the hash object
fd.pipe(hash);
Aber ist es möglich, dies in die Verwendung von ES8 async / await umzuwandeln, anstatt den oben gezeigten Rückruf zu verwenden, aber dennoch die Effizienz der Verwendung von Streams beizubehalten?
async/await
ist nichts anderes als Unterstützung auf Syntaxebene für Versprechen. Wenn Sie diesen Code in ein Versprechen einfügen können, sind Sie fertig.