【手写 Promise 源码】目录 - Promise 知识点梳理
创始人
2024-05-17 08:11:38
0

一,前言

目前,以下专栏已完结(初版完结,持续重构中):

  • 《手写 Vue2 源码》
  • 《手写 VueRouter 源码》
  • 《手写 Vuex 源码》
  • 《Java 设计模式》

在此,要感谢大家的支持、鼓励和认可,以及大家所提出的宝贵建议,这也是我持续输出的动力之一,内容上还有很多不足还希望大家能够谅解;

从本篇开始,进入【手写 Promise 源码】,对相关知识点进行梳理和总结;


二,Promise 概述

写这个专栏的初衷,更多还是做个人知识的梳理和总结,主要会集中在以下两个部分:

  • 分析和解决开发中的异步问题,思考如何写出更为优雅的代码;
  • 了解Promise原理,学习Promise A+规范,并从0 ~ 1实现一个Promise库;

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,实现一个简版 PromisePromise 的实现思路;
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,实现工具方法 promisifypromisify 简介和测试;
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的介绍和使用;


维护日志

  • 20211025
    • 更新专栏目录和链接;
  • 20211120
    • 更新专栏目录和链接;
  • 20211123
    • 更新专栏目录和链接;
    • 优化文章排版和部分描述;
  • 20230126
    • 优化表格标题与内容的对齐方式,更新表格内容链接;

相关内容

热门资讯

女子投诉来伊份粽子吃出带血创可... 转自:财联社【女子投诉来伊份粽子吃出带血创可贴 公司回应】财联社5月11日电,江苏一名消费者苏女士5...
上海警方通报:偷拍女乘客网约车... 【上海警方通报:#偷拍女乘客网约车司机被拘#】#警方通报司机偷拍女乘客已被行拘# 上海市公安局...
激进转型隐忧多,溜溜梅“你没事... (转自:浩海投研Pro)作者/星空下的番茄编辑/菠菜的星空排版/星空下的香菜“你没事儿吧?没事儿就吃...
吴桂英:以重大项目建设提质增效... 转自:长沙发布吴桂英主持召开专题调度会议以重大项目建设提质增效更好支撑长沙高质量发展5月11日,省委...
“哈尔滨银行杯”第22届新晚报... 随着“哈尔滨银行杯”第22届新晚报万人徒步大赛开赛日期临近,冰城市民的期待与热情已被全面点燃。5月1...
14名北大学生联合报案,“00... 近年来,“圈子”文化在年轻人中盛行,许多人因兴趣结识而成为好友,大家对于“同好”也总是会不自觉地多些...
“我只有一罐豆子” 加沙住院病... 转自:央视以色列从3月起全面禁止人道主义援助进入加沙地带,加沙民众的温饱和健康面临严重危机,甚至医院...
产量翻番!这种“明星水果”有望... 夏天快来了“日啖荔枝三百颗,不辞长作岭南人”的时节又到了价格大跳水!暴跌40%近日,潮新闻记者走访水...
“放下手机读会儿书”公益文化品...     5月10日,在浙江省湖州市德清县举办的世界品牌莫干山大会期间,由中共黑龙江省委宣传部、中共湖...
琼州海峡航线于5月10日23时... 转自:中国水运网5月10日晚,记者从湛江海事局获悉,受强风天气影响,自5月10日23时起琼州海峡客滚...
网约车司机偷拍和散布他人隐私被... 5月11日,上海市公安局闵行分局发布警情通报:一网约车司机因偷拍和散布他人隐私被行政拘留。经查,王某...
欧洲天然气市场走势展望 原标题:欧洲天然气市场形势中期展望文/朱岩岩马俊金羽翔,中海石油气电集团有限责任公司,国际石油经济2...
流动见证活力 发展续写繁荣——... 转自:中国水运网厦门港。刚刚过去的“五一”假期,全社会跨区域人员流动量超14.65亿人次,同比增长7...
重庆一高校花75万元买一个路由... 封面新闻记者 马嘉豪近日,有网友发消息称,重庆三峡学院在进行设备采购时,疑似存在违规行为。该校采购的...
科技赋能 向“新”发展——20... CFIC导读◆当前,新一轮科技革命和产业变革深入发展,正在改变品牌的发展模式和竞争格局。科技创新赋能...
“被我爸吓死!”夏天必备,千万... 来源:杭州发布 又到了蚊子每日光顾的时候,每年夏天因为蚊香、电蚊香液、杀虫喷雾等驱蚊产品使用不当产生...
晶泰控股(02228)拟2.5... 晶泰控股(02228)发布公告,于2025年5月10日,买方(本公司全资附属公司)、卖方、担保人及目...
王一博程耳二度合作人鱼 【#王一博程耳二度合作人鱼#】5月11日, 河南籍青年演员 @UNIQ-王一博 主演的电影《人·鱼》...
75万买299元路由器:采购漏... 转自:新京报评论若不打破这种“违规-叫停-再违规”的循环,公共资金的“漏水”将难以堵住。▲重庆三峡学...
网约车司机偷拍女乘客视频发上网... 5月11日,上海市公安局闵行分局官方微博发布警情通报:据媒体此前报道,5月9日,有一IP地址为上海的...