在循环中进行的异步请求是否保证按循环执行的顺序排队?

时间:2015-11-03 19:52:55

标签: javascript node.js sockets libuv

如果我在for循环中执行了多个异步http请求,那么这些套接字被添加到事件循环中的顺序是确定性的/保证是循环执行的顺序吗?

function makeRequest(n) {
  http.get("http://www.google.com/index.html?=" + n, function(res) {
    console.log("Got response: " + res.statusCode);
  }).on('error', function(e) {
    console.log("Got error: " + e.message);
  });
}

for (var i=0; i<10; i++) {
  makeRequest(i);
}

我正和一位同事谈话,我们试图弄清楚这是否属实。因为节点事件循环,libuv和socket / OS编程对我来说是新的,所以这都是猜测。

这只是一个实用的编程应用程序,只是试图开发和理解。

谢谢

1 个答案:

答案 0 :(得分:1)

我不认为特别是在保持活动和套接字重用的情况下保证这一点。