p6-p18 良心视频!
https://www.bilibili.com/video/BV1MJ41197Eu?p=18
主要的问题:
1、什么是同步回调/异步回调?
2、Promise的三个状态转化(pendding,resolve,reject)
3、promise.then可以在启动任务前和起步任务后,promise里的是同步回调了异步函数,then是一个异步操作。
4、为什么Promise比原始的事件处理要好(笔记)?
5、什么是回调地狱?回调地狱有什么缺点?
6、什么是异常穿透,了解异常穿透实际上不是一下子穿透,而是向下层的每一个then传一个 reason => {throw reason} (这里因为有函数体所以执行函数体,不然箭头函数是表示一个return的)
7、常见的API:Promise.all(),Promise.race()
8、一般是先指定回调函数,保存当前的回调函数,再改变状态,异步执行回调函数。
9、resolve()/reject()和then都是同步方法,then里面的异步函数是异步执行的(即使条件满足也不马上执行)
可以在函数下加一个console.log()观察哪个先执行判断同步/异步。异步入队列在同步之后执行。
10、promise.then()返回的新的promise的结果由什么决定?(几个例子)
11、链式调用时,若处理的任务为同步,则return值,若异步,则return new Primise(异步任务)