@@ -12,6 +12,7 @@ export class Base implements OnInit, OnDestroy {
1212 public filesChange : EventEmitter < any > ;
1313 public onProgress : EventEmitter < any > ;
1414 public onError : EventEmitter < any > ;
15+ public onAbort : EventEmitter < any > ;
1516
1617 private readonly TYPE_FILE : string = 'file' ;
1718 private readonly directiveName : string ;
@@ -51,9 +52,19 @@ export class Base implements OnInit, OnDestroy {
5152 const reader = new FileReader ( ) ;
5253 const { name, size, type } = files [ key ] ;
5354
54- reader . onloadend = ( file ) => this . store ( file , saveKey ) ;
55- reader . onerror = ( event ) => this . handleError ( event ) ;
56- reader . onprogress = ( event ) => this . handleProgress ( event ) ;
55+ reader . onloadend = ( file ) => {
56+ this . store ( file , saveKey ) ;
57+ } ;
58+
59+ reader . onerror = ( event ) => {
60+ this . handleError ( event ) ;
61+ } ;
62+
63+ reader . onprogress = ( event ) => {
64+ this . handleProgress ( event ) ;
65+ } ;
66+
67+ reader . onabort = ( ) => this . handleAbort ( ) ;
5768
5869 this . converted . push ( { name, size, type } ) ;
5970
@@ -68,11 +79,15 @@ export class Base implements OnInit, OnDestroy {
6879 }
6980
7081 handleProgress ( event : any ) : void {
71- if ( event . lengthComputable ) {
82+ if ( event . lengthComputable ) {
7283 this . onProgress . next ( Math . round ( ( event . loaded / event . total ) * 100 ) ) ;
7384 }
7485 }
7586
87+ handleAbort ( ) : void {
88+ this . onAbort . next ( 'read cancelled' ) ;
89+ }
90+
7691 store ( file : { target } , key : string ) : void {
7792 this . converted [ this . currentIndex ] [ key ] = file . target . result ;
7893 this . currentIndex = this . currentIndex + 1 ;
0 commit comments