Javascript只运行一半的循环

我正在使用Node.js,我有一个循环,看起来像这样:

var request = require('request'); for(var i = 0; i< some_number; i++){ console.log(i); request( url.concat(i), function(error, response, body){ if(!error){console.log("ABC" + i)} else{ console.log(error); }); } 

并在运行request之前返回0some_number-1 ,我不知道发生了什么事情。 我正在使用请求模块 。

当你提出请求时,需要一段时间才能返回,但是循环不会等待它,它会继续。 这种asynchronous性质是Javascript的主要原则之一。

如果你想在继续循环之前等待每个请求,也许尝试这样的事情:

 function iterator(i) { if (i < some_number) { request(url.concat(i), function(err, response, body) { if (err) console.log(err); iterator(i + 1); }); } } // Kick off the loop iterator(0);