《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/ | 介绍可迭代协议和迭代器协议 |
| 协程 | https://cnodejs.org/topic/58ddd7a303d476b42d34c911 | 介绍协程 |
| co源码 | https://github.com/tj/co | 课后作业分析的源码 |
《3.6-深入理解async/await》预习资料
暂无。
《3.7-处理异步的框架-Rxjs》预习资料
| 预习资料名称 | 链接 | 备注 |
|---|---|---|
| Rxjs的思维导图 | 请在课程学习目录页下载《【复习】异步编程-Rxjs知识点思维导图》(在《异步编程》3.7、3.8课程后)![]() |
可以借助思维导图了解视频的大致内容,后续可以借助思维导图复习巩固 |
| Rxjs的官方指导网站 | https://rxjs.dev/guide/overview | 网站是英文版的,英文基础好的同学可以看下 |
| Rxjs的中文学习网站 | https://cn.rx.js.org/ | 中文版的学习网站,可以结合视频翻阅 |
| Rxjs的操作符学习网站 | https://github.com/RxJS-CN/learn-rxjs-operators | 可以在课后翻阅一下 |
| Rxjs的操作符行为网站 | https://reactive.how | 可以在课后自行实现几个例子,对照操作符行为理解操作符 |
| 流动的数据——使用 RxJS 构造复杂单页应用的数据逻辑 | https://zhuanlan.zhihu.com/p/23305264 | 使用Rxjs管理视图数据,可以看看文章介绍的使用场景 |
《3.8-Web Workers的多线程机制》预习资料
| 预习资料名称 | 链接 | 备注 |
|---|---|---|
| Blob对象用法 | https://developer.mozilla.org/zh-CN/docs/Web/API/Blob | 嵌入式webworkers会用到Blob,在看视频前或者看完视频后看本篇资料都可以 |
| JavaScript中的Blob对象 | https://juejin.im/entry/5937c98eac502e0068cf31ae | 掘金上比较基础的一篇文章,在看视频前或者看完视频后看本篇资料都可以,也可以自行搜索下Blob的扩展用法 |
