node.js回调的队列顺序

时间:2018-08-07 04:16:44

标签: node.js asynchronous io callback

是在异步I / O进程开始后立即以某种“陈旧”状态将回调插入到回调队列中,还是仅在异步I / O完成后才排队?

换句话说,如果节点服务器运行以下

  1. 启动I / O#1
  2. 启动I / O#2
  3. 完成I / O#2
  4. 完成I / O#1
  5. 开始事件循环的回调阶段。

哪个回调将首先运行?来自I / O#1的回调,还是来自I / O#2的回调?

经过编辑,可以在方案中添加数字顺序。

1 个答案:

答案 0 :(得分:0)

据我所知,它仅在异步进程返回数据后才运行。可以将回调看作是一个单独的函数,该函数可以传递并仅在一段代码的末尾使用。

这是大多数nodeJS开发人员必须处理的问题;为异步事件循环添加一些顺序。

这些回调将运行的顺序完全取决于所调用的每个方法的处理时间。

例如,如果回调#1的方法需要2.5毫秒才能完成,而回调#2的方法只需1毫秒。那么如果您一个接一个地运行这两个方法,则Callback#2将始终首先返回。