JavaScript中如何通过事件循环案例进行深入讲解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计871个文字,预计阅读时间需要4分钟。
JavaScript中的事件循环+由于JavaScript是单线程的,同一事件只能执行一种方法,所以会将程序中的方法加入到执行栈中,按照后进先出的顺序执行。当遇到异步任务时,不会阻塞,而是将任务放入任务队列中,等待事件循环到该任务时再执行。
js中的事件循环
因为JavaScript是单线程的,同一事件只能执行一种方法,所以会将程序中的方法加入到执行栈中按照后进先出的顺序依次执行,当遇见异步任务时不会被阻塞,而是将任务放入事件队列中,继续执行执行栈中的同步代码,等当前执行栈中的所有任务都执行完毕则查找事件队列中的任务,并把任务的回调函数放入执行栈中,执行其中的同步代码,如此反复形成的循环被称为事件循环。
node.js
node.js特点
事件驱动
从上向下执行代码,当遇到需要回调的地方就加入到事件队列中,主线程运行完就去执行事件队列中的回调。整个过程不会阻塞新的事件,也不需要维护已经建立的事件
非阻塞io
主线程空闲时,就开始循环事件队列,处理事件队列中的事件,如果该事件不是io任务就亲自处理,如果是io任务,则交给线程池处理并指定回调函数,然后继续循环队列中的其他事件,当阻塞操作完成后会将结果和回调函数放入队列中,主线程循环到时就执行该回调函数。
本文共计871个文字,预计阅读时间需要4分钟。
JavaScript中的事件循环+由于JavaScript是单线程的,同一事件只能执行一种方法,所以会将程序中的方法加入到执行栈中,按照后进先出的顺序执行。当遇到异步任务时,不会阻塞,而是将任务放入任务队列中,等待事件循环到该任务时再执行。
js中的事件循环
因为JavaScript是单线程的,同一事件只能执行一种方法,所以会将程序中的方法加入到执行栈中按照后进先出的顺序依次执行,当遇见异步任务时不会被阻塞,而是将任务放入事件队列中,继续执行执行栈中的同步代码,等当前执行栈中的所有任务都执行完毕则查找事件队列中的任务,并把任务的回调函数放入执行栈中,执行其中的同步代码,如此反复形成的循环被称为事件循环。
node.js
node.js特点
事件驱动
从上向下执行代码,当遇到需要回调的地方就加入到事件队列中,主线程运行完就去执行事件队列中的回调。整个过程不会阻塞新的事件,也不需要维护已经建立的事件
非阻塞io
主线程空闲时,就开始循环事件队列,处理事件队列中的事件,如果该事件不是io任务就亲自处理,如果是io任务,则交给线程池处理并指定回调函数,然后继续循环队列中的其他事件,当阻塞操作完成后会将结果和回调函数放入队列中,主线程循环到时就执行该回调函数。

