Open a7650 opened 5 years ago
Promise的状态只能改变一次,即resolve之后就不能再执行reject,reject起不到任何作用。
then里面的函数是顺序执行的,then中的函数需要return val来给下一个then传入值。then中return的还是一个promise,即一个新的promise,当return的是值的时候,会使用Promise.resolve(val)封装后传入下一个then。也可以在return Promise.resolve(val)/return Promise.reject(val),这样下一个then会根据状态来执行相应的函数。
return val
return Promise.resolve(val)
return Promise.reject(val)
如果想要在then里面执行另外的异步函数,即多个异步函数按照顺序执行,需要 return new Promise( fn(...) )
return new Promise( fn(...) )
Promise的状态只能改变一次,即resolve之后就不能再执行reject,reject起不到任何作用。
then里面的函数是顺序执行的,then中的函数需要
return val
来给下一个then传入值。then中return的还是一个promise,即一个新的promise,当return的是值的时候,会使用Promise.resolve(val)封装后传入下一个then。也可以在return Promise.resolve(val)
/return Promise.reject(val)
,这样下一个then会根据状态来执行相应的函数。如果想要在then里面执行另外的异步函数,即多个异步函数按照顺序执行,需要
return new Promise( fn(...) )