promise.then()会返回一个新的promise,这个返回的promise(记为returnPromise)状态由.then中传入的会调执行结果决定
.then()传入onFullfiled和onReject的回调,每次只会走一个回调逻辑
- 任一回调中正常执行完,并且return了值A,就视为这个returnPromise,resolve了这个值A
- 任一回调中正常执行完,但没有return值,视为returnPromise,resolve了undifined
- 任一回调中throw Error,视为returnPromise,reject了这个error
- 任一回调中正常执行完,return了一个fullfiled状态的promise,视为就视为这个returnPromise,resolve了这个promise的value
return Promise.resolve('111') - 任一回调中正常执行完,return了一个rejected状态的promise,视为就视为这个returnPromise,reject了这个promise的value
return Promise.reject('111') - 任一回调中正常执行完,return了一个pending状态的promise,视为这个returnPromise的就是承接了这个promise
return new Promise((res,rej)=>{})