Promise速通笔记

226 阅读1分钟

1. 为什么要写这篇文章

有这么几个目的:

  1. 前端笔/面试必考题,面试官太爱问这个了;
  2. 的确不是一个好理解的概念。俗话说“好记性不如烂笔头”,网上关于Promise的博客、教程已经满天飞了,不过其中的知识它也只能是别人的,而非自己的;
  3. 工作会用到它,写了博客加深理解。

这篇文章在我的草稿箱里躺了将近三个月,今天捞起来写完。原题目为Promise学习笔记,现在改为Promise速通笔记,一是为了力求以短平快的方式说明白事情,二是为了记录自己在学习与理解Promise中的大石头,顺便帮大家搬掉石头。

2. Promise三个状态

  • pending
  • fulfilled
  • rejected

3. 万物皆可console.log()

以前学Python的时候,不会用IDE单步调试时就用print()大法。换到JavaScript的时候就是console.log()大法。

对Promise三态变化进行console.log()大法后的结果如下:

3.1 pending

image.png

3.2 fulfilled

image.png

此时便可以进行.then()函数的回调了。

3.3 rejected

image.png

从上图可以看出,reject回调被执行后不仅状态会变为{<rejected> : 'Yuebing'},而且会报错

reject状态发生后,便可以进行catch()回调。

参考文献