@@ -20,57 +20,43 @@ class OutputDocument {
2020 * @returns {Promise<Buffer> }
2121 */
2222 getBuffer ( ) {
23- if ( this . bufferPromise === null ) {
24- this . bufferPromise = new Promise ( ( resolve , reject ) => {
25- this . getStream ( ) . then ( stream => {
26-
27- let chunks = [ ] ;
28- let result ;
29- stream . on ( 'readable' , ( ) => {
30- let chunk ;
31- while ( ( chunk = stream . read ( this . bufferSize ) ) !== null ) {
32- chunks . push ( chunk ) ;
33- }
34- } ) ;
35- stream . on ( 'end' , ( ) => {
36- result = Buffer . concat ( chunks ) ;
37- resolve ( result ) ;
38- } ) ;
39- stream . end ( ) ;
40-
41- } , result => {
42- reject ( result ) ;
23+ const getBufferInternal = ( async ( ) => {
24+ const stream = await this . getStream ( ) ;
25+ return new Promise ( ( resolve ) => {
26+ let chunks = [ ] ;
27+ stream . on ( 'readable' , ( ) => {
28+ let chunk ;
29+ while ( ( chunk = stream . read ( this . bufferSize ) ) !== null ) {
30+ chunks . push ( chunk ) ;
31+ }
4332 } ) ;
33+ stream . on ( 'end' , ( ) => {
34+ resolve ( Buffer . concat ( chunks ) ) ;
35+ } ) ;
36+ stream . end ( ) ;
4437 } ) ;
45- }
38+ } ) ;
4639
40+ if ( this . bufferPromise === null ) {
41+ this . bufferPromise = getBufferInternal ( ) ;
42+ }
4743 return this . bufferPromise ;
4844 }
4945
5046 /**
5147 * @returns {Promise<string> }
5248 */
53- getBase64 ( ) {
54- return new Promise ( ( resolve , reject ) => {
55- this . getBuffer ( ) . then ( buffer => {
56- resolve ( buffer . toString ( 'base64' ) ) ;
57- } , result => {
58- reject ( result ) ;
59- } ) ;
60- } ) ;
49+ async getBase64 ( ) {
50+ const buffer = await this . getBuffer ( ) ;
51+ return buffer . toString ( 'base64' ) ;
6152 }
6253
6354 /**
6455 * @returns {Promise<string> }
6556 */
66- getDataUrl ( ) {
67- return new Promise ( ( resolve , reject ) => {
68- this . getBase64 ( ) . then ( data => {
69- resolve ( 'data:application/pdf;base64,' + data ) ;
70- } , result => {
71- reject ( result ) ;
72- } ) ;
73- } ) ;
57+ async getDataUrl ( ) {
58+ const data = await this . getBase64 ( ) ;
59+ return 'data:application/pdf;base64,' + data ;
7460 }
7561
7662}
0 commit comments