function process () { getMD5 ( document . getElementById ( "my-file-input" ). files [ 0 ], prog => console . log ( "Progress: " + prog ) ). then ( res => console . log ( res ), err => console . error ( err ) ); } function readChunked ( file , chunkCallback , endCallback ) { var fileSize = file . size ; var chunkSize = 4 * 1024 * 1024 ; // 4MB var offset = 0 ; var reader = new FileReader (); reader . onload = function () { if ( reader . error ) { endCallback ( reader . error || {}); return ; } offset += reader . result . length ; // callback for handling read chunk // TODO: handle errors chunkCallback ( reader . result , offset , fileSize ); if ( offset >= fileSize ) { endCallback ( null ); return ; } readNext (); }; reader . onerror = function ( err ) { endCallback ( err || {...