【手写 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
    • 优化表格标题与内容的对齐方式,更新表格内容链接;

相关内容

热门资讯

魁拔4发蛮吉是魁拔了吗? 魁拔4发蛮吉是魁拔了吗?发现了,你可以去看魁书2,感情线也明了了,我会骗你吗?谁知道,去问王川呀
找一本小说男主好像姓凤,女主是... 找一本小说男主好像姓凤,女主是一对双胞胎的姐姐,叫什么就忘了,男二号叫龙飞,和双胞胎妹妹相爱的女主姓...
明朝精彩故事 明朝精彩故事喜欢明朝的故事,建议看【明朝那些事儿】用现代的语言说明朝的故事,你会喜欢的,里面语言很幽...
用过‘千万别学英语’的请进 用过‘千万别学英语’的请进我觉得这书没什么意思,有时候任何东西都是只适合一部分人的。我每天听那些磁带...
学英语时英美式发音混在一起了怎... 学英语时英美式发音混在一起了怎么办?哪种发音好?学的词汇是英式发音,但是很多听力却是美式发音的,怎么...
"我不是个稻草人,不能说不能动... "我不是个稻草人,不能说不能动"是哪首歌里的?稻草人,林志颖唱的林志颖演唱的 稻草人林志颖的稻草人
恶魔猎手有什么那么厉害,高手看... 恶魔猎手有什么那么厉害,高手看中他那点厉害恶魔猎手有什么那么厉害,高手看中他那点厉害速度技能都很好。...
请问这样的短信该怎样回 请问这样的短信该怎样回夸奖夸奖,久闻阁下大名,今日一见果然名不虚传。肥硕如象,真是过犹而不及。小生我...
女上司总来撩我怎么办,我也会把... 女上司总来撩我怎么办,我也会把持不住的找借口或是直接反撩她,我猜你也不敢,可能对你有意思,没女朋友就...
为什么良渚文化可以证明中华文明... 为什么良渚文化可以证明中华文明五千年,而龙山文化等其他文化不能证明?因为良渚文化有不少文化遗产可以证...
炎亚纶的资料。 炎亚纶的资料。去网上搜 炎亚纶
男主重生重进宗门 不是都市小说... 男主重生重进宗门 不是都市小说 以前在师傅手下学药后来和师姐好上了重生小说一般都不会放过师姐。。。
万章曰:"尧以天下与... 万章曰:"尧以天下与舜,有诸?(孟子的学生)万章问(孟子):“尧把天下授与舜,有这回事吗?” 问的是...
写近义词饱胀对什么清早对什么依... 写近义词饱胀对什么清早对什么依然对什么?饱胀对饱满,清早对清晨,依然对依旧饱胀的近义词: 饱足 饱满...
梦到在上课 梦到在上课老师你也敢戏弄?别说给小鞋你穿,紧紧鞋带都够你受的。这是你潜意识里发泄心理压力,而达到心理...
怎么写一个人很温柔,写一段话 怎么写一个人很温柔,写一段话我不知道那些鸿雁究竟是怎样掠夺了我忧郁无助的天空。就像你撩动温柔浸渍了我...
中风了应该怎样处理? 中风了应该怎样处理?中风多由脑血管疾病引发,是一种常见急症。处理原则是:保持病人安静,让病人卧下,将...
盘点2021高评分的古装剧,哪... 盘点2021高评分的古装剧,哪部剧最让你感到意难平?杨幂的斛珠夫人 。在这部剧的结局当中,男一男二,...
奔字的笔顺笔画顺序 奔字的笔顺笔画顺序汉字: 奔 读音: bèn bēn 部首: 大 笔画...
智商跟性格有关吗 智商跟性格有关吗有关啊,有相关的研究,但是相关未必是因果,可能是因为智力高所以才有的那些性格或者别的...