在学习《node.js实战》时,看到process.nextTick这个运用案例,便记录下来
计算两个数组的交叉元素
代码1:
代码1使用的是双重循环来计算两个数组的交叉元素,当两个数组所含元素数量小的时候该方法是很适用的,尽管存在效率问题,但是问题不大;可当两个数组所含含元素数量提高至上千上万时,将花费大量的时间占用计算机大量资源,这种方法就不适用了,因此就有了代码2。
代码2:
代码2很好的运用了nodejs中的process对象的nextTick方法,编程的思路就是:放开该计算函数的使用权,通过process.nextTick方法将该函数的使用权交给了计算机系统。这种方法好像在跟系统说:‘我把这个函数的使用权给你,你有空了就帮我算几个,算完了通过callback函数告诉我’。
尽管现在已经比最初的计算交叉元素的函数版本要稍许复杂,但在单线程的Node事件处理和回调的世界中已经运行得非常好了。当然,我们可以在任何复杂的、计算速度慢的场景中使用process.nextTick。