Promise
- Promise状态一旦改变就不会再变;
- Promise函数两个参数(resolve,reject)
- Promise在创建之后会立即执行
- resolve之后的代码还会运行,但是reject跑出的错误不会运行
- Promise错误会向后继续跑出知道被catch捕获为止,建议使用catch捕获异常而不是在then的第二个参数reject处理,如果使用reject捕获不处理,不加reject处理的话外层不会处理里面抛出的异常, then是链式运行,就是同步运行,catch最好放在最后捕获异常,如果放在中间有可能跳过异常而没有捕获到后面的异常
- Promise.all,可以将多个Promise包装成一个新的Promise实例,all方法中,只有每一个参数promise都变成fulfilled,新建的Promise才会变成Fulfilled,如果有一个是reject,那么新的Promise对象的参数就是第一个reject传回来的回调函数
- Promise对象的回调链,不管以then方法或catch方法结尾,要是最后一个方法抛出错误,都有可能无法捕捉到(因为Promise内部的错误不会冒泡到全局)。
- 因此,我们可以提供一个done方法,总是处于回调链的尾端,保证抛出任何可能出现的错误。
|
|
- [x] 观看有感——阮一峰es6