2013-06-21 36 views
0
  request(source_url).pipe(async.series([ 
      function() { 
       fs.createWriteStream(path_for_downloads + path.basename(source_url)); 
      }, 
      function() { 
       done(null); 
      } 
      ]); 
     ); 

它等待未閉合支架...爲什麼async.series在下面的代碼中不能在REPL中工作?

...    ); 
... 

這工作:

async.series([ 
       function() { 
        fs.createWriteStream(path_for_downloads + path.basename(source_url)); 
       }, 
       function() { 
        done(null); 
       } 
       ]); 

回答

2
request(source_url).pipe(async.series([ 
     function() { 
      fs.createWriteStream(path_for_downloads + path.basename(source_url)); 
     }, 
     function() { 
      done(null); 
     } 
     ]); //close the array, close async.series call, OOPS don't want a semi there 
    ); //close the pipe call 

那是你的錯誤,我認爲。但是,這段代碼還有其他一些問題。我想你想要更類似的東西:

var stream = request(source_url).pipe(fs.createWriteStream(path_for_downloads + path.basename(source_url)); 
stream.on('end', done); 
stream.on('error', done); 
相關問題