如果在面试中让手写 Promise,这个难度是比较大的,除非在面试前做了很深的功课,否则很难写出来,即使写出来也漏洞百出。
为啥难?
我们不妨看一下 Promise/A+ 的规范,我截了一张图:
这个规范的内容量非常大,仅看这个规范一时半会也看不完,而且面试官一般都不会给你提供这个规范的文档。我们一脸懵逼「全靠猜」。
那如果在面试中遇到这种情况咋办?
如果面试前,你没有看过这个规范,以及源码的实现,这道题基本就挂了,把你能想到的尽量写出来即可。即使面试挂了,也不是你能力问题,毕竟这玩意如果你连规范都没接触过,如何写代码呢?
但是,话又说回来,Promise 在 ES6 中是比较重要的概念。那如何才能够学会手写 Promise 呢?我有一些资料与你分享:
1、规范必不可少
英文:https://promisesaplus.com/
中文:http://www.ituring.com.cn/article/66566
2、B站有个视频,讲的还行(适合初学者)
https://www.bilibili.com/video/BV1L441157jg?t=121&p=9
代码实现部分写的一般,掌握思想后可直接查看 promise-polyfill
3、直接看源码(最佳)
Promise 在 IE 浏览器是不支持的,需要引入 promise-polyfill,可以通过这个源码来学习 Promise 的实现
https://github.com/taylorhakes/promise-polyfill
总之,以上 3 部分内容足够让你深入学习 Promise。大家加油!!
长按关注
素燕《前端小课》
帮助 10W 人入门并进阶前端
官网:https://lefex.gitee.io/