promise笔记

132 阅读1分钟

1. promise中catch也可以获取try catch的错误,可是只能接收到同步的错误,异步需要调用reject

2. 看一个大佬讲课还发现,我们可以封装一个错误类, 不同的错误我们使用不同的错误类, 然后通过instancef检查类型的手段, 判断不同的错误去实现不同的解决

image.png

image.png

3. 这样也是一个不错的思路

4. promise三个状态, 通过resolve,reject去变化

5. 三个关键字

  1. then()
  2. catch()他是then的语法糖===then(null, (e)={})
  3. finally不管成功失败都执行 ------ 例如:在请求之后无论成功失败都去取消一个加载的loading效果

6. promise可以将带有then方法的对象或者类直接封装成promise

let test = {
    then(resolve, reject) {
        resolve('ok')
    }
}
Promise.resolve(test).then( res => {conlose.log(res) }) // 输出ok

7. 我们new promise时如果已经调用catch, 其实他已经是解决状态所以可以使用then接收他

8. promise.all()他就是接收我们new的多个promise