Fix #3: promise progress triggered when 'onprogress' event