File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -84,6 +84,7 @@ PDF.prototype.toFile = function PdfToFile (filename, callback) {
8484}
8585
8686PDF . prototype . exec = function PdfExec ( callback ) {
87+ var callbacked = false
8788 var child = childprocess . spawn ( this . options . phantomPath , [ ] . concat ( this . options . phantomArgs , [ this . script ] ) )
8889 var stdout = [ ]
8990 var stderr = [ ]
@@ -105,25 +106,29 @@ PDF.prototype.exec = function PdfExec (callback) {
105106 return child . kill ( )
106107 } )
107108
108- child . on ( 'error' , function ( error ) {
109+ function exit ( err , data ) {
110+ if ( callbacked ) return
111+ callbacked = true
109112 clearTimeout ( timeout )
110- return callback ( error )
111- } )
113+ if ( err ) return callback ( err )
114+ return callback ( null , data )
115+ }
116+
117+ child . on ( 'error' , exit )
112118
113119 child . on ( 'exit' , function ( code ) {
114- clearTimeout ( timeout )
115120 if ( code || stderr . length ) {
116121 var err = new Error ( Buffer . concat ( stderr ) . toString ( ) || 'html-pdf: Unknown Error' )
117- return callback ( err )
122+ return exit ( err )
118123 } else {
119124 try {
120125 var buff = Buffer . concat ( stdout ) . toString ( )
121126 var data = ( buff ) != null ? buff . trim ( ) : undefined
122127 data = JSON . parse ( data )
123128 } catch ( err ) {
124- return callback ( err )
129+ return exit ( err )
125130 }
126- return callback ( null , data )
131+ return exit ( null , data )
127132 }
128133 } )
129134
You can’t perform that action at this time.
0 commit comments