promise的return

333 阅读1分钟

promise.then()会返回一个新的promise,这个返回的promise(记为returnPromise)状态由.then中传入的会调执行结果决定

.then()传入onFullfiled和onReject的回调,每次只会走一个回调逻辑

  1. 任一回调中正常执行完,并且return了值A,就视为这个returnPromise,resolve了这个值A
  2. 任一回调中正常执行完,但没有return值,视为returnPromise,resolve了undifined
  3. 任一回调中throw Error,视为returnPromise,reject了这个error
  4. 任一回调中正常执行完,return了一个fullfiled状态的promise,视为就视为这个returnPromise,resolve了这个promise的value return Promise.resolve('111')
  5. 任一回调中正常执行完,return了一个rejected状态的promise,视为就视为这个returnPromise,reject了这个promise的value return Promise.reject('111')
  6. 任一回调中正常执行完,return了一个pending状态的promise,视为这个returnPromise的就是承接了这个promise return new Promise((res,rej)=>{})