课程标题 路白-Promis规范
课程目标
- 了解promise a+规范
- 根据promise a+规范手写出自己的一个promise
- generator,async,await的
知识要点
规范
自行翻译的规范:https://www.jianshu.com/writer#/notebooks/26191096/notes/86414819
- 状态
a. pending初始状态
可以通过resolve将pending改为fulfilled状态,后状态不能再改变
也可以通过reject将pending改为rejected状态,此后状态不能再改变。
b. fulfilled状态
可以通过relove一个value变成此状态。必须包含一个value
c. rejected状态
可以通过reject一个reason变成此状态。必须包含一个reason
- 什么是promise a+规范,包含了什么。
promise是一个有then方法的函数或对象。
补充知识点
错误观念
- 之前认为传入promise中的函数,是在then()调用之后才执行。 其实是在执行构造函数的时候就已经执行了。
课后问题
- promise中参数的执行时机是什么?
同步执行,当调用promise时,参数传入的函数就已经执行。 - status有哪些,他们的状态流转是怎样的?
有三种,pending,fulfilled,rejected
pending可以流转为其他两种状态,无法反向流转 - promise的回调函数,onFulfilled和onRejected的执行时机是什么?
在status的状态从pending变为fulfilled时会调用onFulfilled回调函数,
在status的状态从pending变成rejected时会调用onRejected回调函数 - 静态方法和实例方法有什么区别?
静态方法相当于直接通过类.函数名的方式调用,只能通过构造函数去访问,实例方法是挂在构造函数的原型链上的 - generator的特性是什么?只调用一次next可以输出全部值吗?
迭代器,每次执行next只输出一个下一个结果,返回value和done - async 和await的规范,await的返回值
函数必须声明async,才可以在内部使用await
await的返回值是一个promise