a7650 / my-blog

记录总结问题
0 stars 0 forks source link

Promise #7

Open a7650 opened 5 years ago

a7650 commented 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会根据状态来执行相应的函数。

如果想要在then里面执行另外的异步函数,即多个异步函数按照顺序执行,需要 return new Promise( fn(...) )