目前,以下专栏已完结(初版完结,持续重构中):
在此,要感谢大家的支持、鼓励和认可,以及大家所提出的宝贵建议,这也是我持续输出的动力之一,内容上还有很多不足还希望大家能够谅解;
从本篇开始,进入【手写 Promise 源码】,对相关知识点进行梳理和总结;
写这个专栏的初衷,更多还是做个人知识的梳理和总结,主要会集中在以下两个部分:
Promise
原理,学习Promise A+
规范,并从0 ~ 1
实现一个Promise
库;Promise
的重要性;
Promise
在前端领域拥有绝对的地位,面试核心考察点;Promise
的实现中,高阶函数、柯里化思想、发布订阅模式都有所体现;本篇,将对Promise
相关知识点进行梳理和拆分;
备注:内容链接会随文章发布同步更新,初版共 18 篇,目前更新 2 篇,每日更新 2 篇;
1,Promise 简介 | Promise 简介和基本使用; Promise 和 callback 对比; Promise 的重要性和作用; Promise 使用场景:Promisify 封装; Promise 的优缺点、兼容性; |
2,Promise 功能介绍与特性分析 | Promise 基础特性; Promise 实例 API(原型方法)的介绍和使用; Promise 静态 API(类方法)的介绍和使用; |
3,实现一个简版 Promise | Promise 的实现思路; Promise A+ 规范(简版); Promise 简版实现和功能测试; |
4,翻译并理解 Promise A+ 规范 | 对照 Promise A+ 规范英文版逐句进行翻译和理解 |
5,实现 Promise 异步操作 | 测试 Promise 对异步操作的支持; 分析当前 Promise 代码问题及解决方案; 使用发布订阅思想实现对异步操作的支持; Promise 异步操作的测试; |
6,实现 Promise 链式调用 | 介绍了 Promise 链式调用,返回普通值和抛出异常的5种情况; 分析了当前 Promise 源码的问题及解决方案; Promise 链式调用的实现、功能测试、执行过程分析; |
7,实现 Promise 返回值 x 的处理 | 回顾了 Promise A+ 规范中的相关内容; 根据 Promise A+ 规范实现 resolvePromise 方法; 实现了对 then 中方法的返回值 x 为 promsie 类型的处理; |
8,完善 Promise 并通过 promise-aplus-tests 测试 | 支持 resolve(Promise)的情况; 支持 Promise 的 then 中方法返回 promise 后,继续 resolve(Promise)的情况; Promise 的兼容处理; 分析了 Promise 的执行过程; 创建延迟对象并通过 promise-aplus-tests 测试; |
9,Promise.resolve 和 Promise.reject 的实现 | 实现 Promise 静态 API(类方法):Promise.resolve 和 Promise.reject; |
10,Promise.prototype.catch 和 Promise.prototype.finally 的实现 | 实现 Promise 实例 API(原型方法):Promise.prototype.catch 和 Promise.prototype.finally; |
11,Promise.all 的实现 | 测试原生 Promise.all 的使用; Promise.all 的功能与特性分析; Promise.all 的源码实现、执行分析、功能测试; |
12,Promise.race 的实现 | 测试原生 Promise.race 的使用; Promise.race 的功能与特性分析; Promise.race 的源码实现、执行分析、功能测试; |
13,Promise.allsettled 和 Promise.any 的实现 | 测试原生 Promise.allsettled 的使用; Promise.allsettled 原理分析、源码实现、功能测试; Promise.any 原理分析、源码实现、功能测试; |
14,实现工具方法 promisify | promisify 简介和测试; promisify 功能的实现:promisify、promisifyAll; |
15,了解 generator 生成器 | generator生成器简介:特性、用法、功能分析; generator生成器的实现原理分析; |
16,了解 co 库 | co 库的简介:特性、用法、功能分析; co 库的实现和原理分析; |
17,async/await 简介 | async/await 的使用和功能分析; async/await 的实现和原理分析; |
18,EventLoop 简介 | EventLoop 简介; 宏任务和微任务; EventLoop 循环机制; |
19,Promise 面试题 | 常见面试题分析 Promise 相关知识总结 |
暂时以表格中的主题作为参考,过程中会继续进行细化和扩展,如:穿透问题,不同场景下的使用分析,源码中的编程技巧和设计模式等;
本篇,对Promise
相关知识点进行梳理和拆分;
作为Promise
专栏目录,随文章更新会持续完善,欢迎大家留言讨论和补充;
下一篇,Promise
的介绍和使用;
下一篇:Python调用lua