@@ -43,8 +43,11 @@ module.exports = function (options) {
43
43
name : name ,
44
44
size : stats . size
45
45
} ) ;
46
- this . initUrls ( fileInfo ) ;
47
- files . push ( fileInfo ) ;
46
+ this . initUrls ( fileInfo , function ( err ) {
47
+ files . push ( fileInfo ) ;
48
+ cb ( err ) ;
49
+ return ;
50
+ } ) ;
48
51
}
49
52
}
50
53
cb ( err ) ;
@@ -67,11 +70,15 @@ module.exports = function (options) {
67
70
redirect ,
68
71
finish = _ . bind ( function ( ) {
69
72
if ( ! -- counter ) {
70
- _ . each ( files , function ( fileInfo ) {
71
- this . initUrls ( fileInfo ) ;
72
- this . emit ( 'end' , fileInfo ) ;
73
- } , this ) ;
74
- this . callback ( { files : files } , redirect ) ;
73
+ async . each ( files , function ( fileInfo , cb ) {
74
+ this . initUrls ( fileInfo , function ( err ) {
75
+ this . emit ( 'end' , fileInfo ) ;
76
+ cb ( err ) ;
77
+ } ) ;
78
+ } ,
79
+ function ( err ) {
80
+ this . callback ( { files : files } , redirect ) ;
81
+ } ) ;
75
82
}
76
83
} , this ) ;
77
84
@@ -175,15 +182,17 @@ module.exports = function (options) {
175
182
} ) ;
176
183
} ;
177
184
178
- UploadHandler . prototype . initUrls = function ( fileInfo ) {
185
+ UploadHandler . prototype . initUrls = function ( fileInfo , cb ) {
179
186
var baseUrl = ( options . ssl ? 'https:' : 'http:' ) + '//' + ( options . hostname || this . req . get ( 'Host' ) ) ;
180
187
fileInfo . setUrl ( null , baseUrl + options . uploadUrl ( ) ) ;
181
188
fileInfo . setUrl ( 'delete' , baseUrl + this . req . originalUrl ) ;
182
- _ . each ( options . imageVersions , function ( value , version ) {
183
- if ( fs . existsSync ( options . uploadDir ( ) + '/' + version + '/' + fileInfo . name ) ) {
184
- fileInfo . setUrl ( version , baseUrl + options . uploadUrl ( ) + '/' + version ) ;
185
- }
186
- } , this ) ;
189
+ async . each ( Object . keys ( options . imageVersions ) , function ( version , cb ) {
190
+ fs . exists ( options . uploadDir ( ) + '/' + version + '/' + fileInfo . name , function ( exists ) {
191
+ if ( exists ) fileInfo . setUrl ( version , baseUrl + options . uploadUrl ( ) + '/' + version ) ;
192
+ cb ( null ) ;
193
+ } )
194
+ } ,
195
+ cb ) ;
187
196
} ;
188
197
189
198
return UploadHandler ;
0 commit comments