File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -84,6 +84,7 @@ PDF.prototype.toFile = function PdfToFile (filename, callback) {
84
84
}
85
85
86
86
PDF . prototype . exec = function PdfExec ( callback ) {
87
+ var callbacked = false
87
88
var child = childprocess . spawn ( this . options . phantomPath , [ ] . concat ( this . options . phantomArgs , [ this . script ] ) )
88
89
var stdout = [ ]
89
90
var stderr = [ ]
@@ -105,25 +106,29 @@ PDF.prototype.exec = function PdfExec (callback) {
105
106
return child . kill ( )
106
107
} )
107
108
108
- child . on ( 'error' , function ( error ) {
109
+ function exit ( err , data ) {
110
+ if ( callbacked ) return
111
+ callbacked = true
109
112
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 )
112
118
113
119
child . on ( 'exit' , function ( code ) {
114
- clearTimeout ( timeout )
115
120
if ( code || stderr . length ) {
116
121
var err = new Error ( Buffer . concat ( stderr ) . toString ( ) || 'html-pdf: Unknown Error' )
117
- return callback ( err )
122
+ return exit ( err )
118
123
} else {
119
124
try {
120
125
var buff = Buffer . concat ( stdout ) . toString ( )
121
126
var data = ( buff ) != null ? buff . trim ( ) : undefined
122
127
data = JSON . parse ( data )
123
128
} catch ( err ) {
124
- return callback ( err )
129
+ return exit ( err )
125
130
}
126
- return callback ( null , data )
131
+ return exit ( null , data )
127
132
}
128
133
} )
129
134
You can’t perform that action at this time.
0 commit comments