在https://stackoverflow.com/a/18658613/779159中,示例了如何使用内置的加密库和流来计算文件的md5。
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);
但是是否可以将其转换为使用ES8异步/等待而不是使用上述回调,但仍保持使用流的效率?
async/await
只是语法上对promise的支持。如果您可以将此代码放入Promise中,那么您就完成了。