2016-10-28 8 views
0

解析イメージからダウンロードイメージを移動して自分のローカルに保存しようとしています。私にはこの仕事をするコードがあります。リクエストが1つだけの場合でもうまく動作しますが、ループに入れてもうまくいきません。request.headでネストループを使用する方法 - ノードJS

私が持っているループ条件とは無関係に、上記のディレクトリに1つの画像しかダウンロードされません。

は以下

the print logic is shown here

入力がJSONファイルからのものであるOPであり、そしてIは、要求が、FS、ノードJSプログラムに含まれるモジュールを解析有します。

これについての手引きについてのお手伝いはありますか?

+0

あなたは、フロー制御のための本当に便利 –

+0

おかげでドミトリーをasync.jsライブラリを使用することができます。私はドキュメンテーションを見ていきます。どんな約束が助けになるかについてのアドバイスはありますか? –

+0

asyncは約束ではありません。私は、約束以上の非同期を好む。 – Alan

答えて

1

私は今これを修正しました。コメントでアドバイスされたように、私はそのトリックを助けたのは非同期でした。

for(var i = 0; i < 900; i++) { 
    async.forEachOf(results_jsonObj[i], function(value, key, callback){ 
    var image = {}; 
      image.key = key; 
       image.value = value; 
    if(image.key == 'imageFile') 
    { 
     var filename = image.value.name; 
     var uri = image.value.url; 
     // console.log(filename, uri); 
    } 

    request.head(uri, function(err, res, body){ 
     if (err){ 
     console.log(err); 
     // console.log(item); 
     return; 
     }else { 
     // console.log(i,res.headers['content-type']); //to debug 
     var stream = request(uri); 
     stream.pipe(
      fs.createWriteStream("images/"+filename) 
      .on('error', function(err){ 
       callback(error, filename); 
       stream.read(); 
       }) 
     ) 
     } 
    }); 
     callback(); 
    }, function(err){ 
     if (err) { 
      console.log('one of the api failed, the whole thing will fail now'); 
     } 
    }); 
    } 
関連する問題