一、异步进阶-Promise
1. Promise有哪三种状态?如何变化?
- 三种状态
pending resolved rejected
pending -> resolved
或pending -> rejected
- 状态的表现和变化
pending
状态,不会触发then
和catch
resolved
状态,会触发后续的then
回调函数rejected
状态,会触发后续的catch
回调函数
jsconst p1 = Promise.resolve(100); // resolved // console.log('p1', p1); p1.then(data => { console.log('data', data); }).catch(err => { console.error('err', err); }) const p2 = Promise.reject('err'); // rejected // console.log('p2', p2); p2.then(data => { console.log('data2', data); }).catch(err => { console.error('err2', err); })
then
和catch
对状态的影响then
和catch
方法都是正常返回resolved
,里面有报错则返回rejected
。
- 题解