2017-03-09 4 views
-1

itemsという配列があり、順番にPOSTが必要です。可変数のPOST要求を同期させるにはどうすればよいですか?

var items = ["data 1", "data 2", etc]; 
while (i < numOfItems) {  
    var formData = { 
     ID : ID, 
     UID : UID, 
     item : items[i]; 
    } 
    request.post({url:'http://example.com/a', formData: formData}, function(err, httpResponse, body){ 
     if (err) { 
      return console.error('Post failed:', err); 
     } 
     console.log('Post successful! Server responded with:', body); 
     i++; 
    }); 
} 

これにより、無限ループが作成されます。可変数の要求をどのように同期させることができますか?

ありがとうございます!あなたが投稿したコードと

+1

であるあなたは、各要求を開始する前に完了する前のを待つようにしたいですか? –

+0

@JaromandaXはい – user82395214

答えて

1

最も簡単な解決策は、再帰

var items = ["data 1", "data 2", etc]; 
function doRequest(i) { 
    if (i< numOfItems) { 
     var formData = { 
      ID : ID, 
      UID : UID, 
      item : items[i]; 
     } 
     request.post({url:'http://example.com/a', formData: formData}, function(err, httpResponse, body){ 
      if (err) { 
       // this will stop the "loop" altogether 
       return console.error('Post failed:', err); 
      } 
      console.log('Post successful! Server responded with:', body); 
      doRequest(++i); 
     }); 
    } 
} 
関連する問題