《3.1-理解异步》预习资料
预习资料名称 | 链接 | 备注 |
---|---|---|
官方图解:Chrome 快是有原因的,现代浏览器的多进程架构! | https://juejin.im/post/5bd7c761518825292d6b0217 | 学习这篇文章可以了解浏览器的架构以及每个模块负责的工作,宏观上了解浏览器的工作原理。 |
进程与线程的一个简单解释 | https://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html | 文章生动形象的比喻了进程和线程,将抽象的概念形象化了 |
浏览器进程?线程?傻傻分不清楚! | https://imweb.io/topic/58e3bfa845e5c13468f567d5 | 重点讲解线程、进程的区别,以及浏览器内核的多线程 |
定时器标准 | https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers | 规范对定时器的说明 |
《3.2-Event Loop机制》预习资料
预习资料名称 | 链接 | 备注 |
---|---|---|
Event Loops标准 | https://html.spec.whatwg.org/multipage/webappapis.html#event-loops | 标准对Event Loops的说明 |
Node.js 事件循环,定时器和 process.nextTick() | https://nodejs.org/zh-cn/docs/guides/event-loop-timers-and-nexttick/#what-is-the-event-loop | 介绍了nodejs的事件循环和定时器 |
调用栈 | https://developer.mozilla.org/zh-CN/docs/Glossary/Call_stack | 介绍js运行调用栈 |
JS中的栈内存堆内存 | https://juejin.im/post/5d116a9df265da1bb47d717b |
《3.3-异步编程方法-发布/订阅》拓展学习资料
预习资料名称 | 链接 | 备注 |
---|---|---|
EventEmitter实现源码 | https://github.com/nodejs/node/blob/master/lib/events.js | 建议看完视频阅读 |
FsWatch实现源码 | https://github.com/nodejs/node/blob/master/lib/internal/fs/watchers.js | 建议看完视频阅读 |
《3.4-深入理解promise》预习资料
预习资料名称 | 链接 | 备注 |
---|---|---|
promise 基础 | https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise | 无 |
promises A+规范 | https://github.com/promises-aplus/promises-spec | 无 |
promises A+规范测试工具用例工具 | https://github.com/promises-aplus/promises-tests | 无 |
常见的Promise面试题,请同学们结合课程内容思考:
1. 什么场景下需要使用promise?promise解决了什么问题?promise是如何解决问题的?
2. promise有哪些常用方法,作用是什么?
3. 如果浏览器不知道promise应该如何处理?实现一个简单的promise polyfill。
4. 给定一段代码,给出代码打印的顺序。
《3.5-Generator函数及其异步的应用》预习资料
预习资料名称 | 链接 | 备注 |
---|---|---|
可迭代协议 迭代器协议 | https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Iteration_protocols#%E5%8F%AF%E8%BF%AD%E4%BB%A3%E5%8D%8F%E8%AE%AE | 介绍可迭代协议和迭代器协议 |
协程 | https://cnodejs.org/topic/58ddd7a303d476b42d34c911 | 介绍协程 |
co源码 | https://github.com/tj/co | 课后作业分析的源码 |