node 的Event-Loop?

今天在看node的Event-Loop时遇到了很久以来的疑问,不甚了解;

  1. 首先阐述一下我阅读完这两篇博客的收获和问题这是
    第一篇:链接描述

    第二篇:链接描述

    很希望有大神能帮忙解惑一下谢谢!

  2. 我所理解的event-loop

    • 通过javascript调用node的核心模块,将参数和回调函数传入到核心模块。

    • 由node binding沟通C/C++,实现数据交互。

    • 由node的核心模块将参数和回调函数封装成请求对象,libuv将请求对象推入线程池,由空闲的线程去执行。

    • 执行完后将执行结果放到请求对象的result属性上。并发出一个完成通知,然后在libuv的event-loop队列中注册一个回调函数?也就是请求时的回调函数???

    • 每次Event-Loop时检查是否有完成了的操作。有就放在观察者队列?

    • 然后事件触发时,会去取出(观察者队列中?)之前封装请求对象时的回调函数,并将result当成参数,完成事件的处理?

    • 事件循环队列和观察队列不是一个队列 对吧?或者说我概念没理清?

  3. 由于深知看懂底层C/C++还有一段路要走,所以希望大咖们帮忙解答一下小弟的疑惑?谢谢(希望答者是真正的明白者!!!再次谢谢)


神不在的星期二
浏览 440回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript