setTimeout in Node.js loop
asynchronous, javascript, node.js, settimeout
Solution
You need something like this
var counter = 5;
function makeRequst(options, i) {
// do your request here
}
function myFunction() {
alert(counter);
// create options object here
//var options = {
// host:'www.host.com',
// path:'/path/'+counter
//};
//makeRequest(options, counter);
counter--;
if (counter > 0) {
setTimeout(myFunction, 1000);
}
}
See also this fiddle
At the point of the `alert(count);` you can do your call to the server. Note that the counter works opposite (counting down). I updated with some comments where to do your thing.
Problem
I'm a bit confused as to how `setTimeout` works. I'm trying to have a `setTimeout` in a loop, so that the loop iterations are, say, 1s apart. Each loop iteration makes an HTTP request and it seems like the server on the other end can't handle that many requests in such a short time span. ``` for (var i = 1; i<=2000 && ok; i++) { var options = { host:'www.host.com', path:'/path/'+i }; setTimeout(makeRequest(options, i), 1000); }; ``` Why does this not work and how can I achieve this? Thank you