ps:下面参数说的是Promise.resolve(x)中的x
一共四种情况:
1.如果参数是Promise实例本身,则抛出错误
2.如果参数是一个promise对象,则then函数的执行取决于这个参数的状态,如果参数也调用了resolve(y),其中y也是一个promise对象then函数的执行取决于这个promise对象,以此类推。
3.如果参数是一个thenable对象,就是一个对象包含then这个属性,或者是一个函数包含一个then的静态方法,那么直接执行then函数
4.如果参数是一个普通值,直接变成onFullfilled状态,然后执行后面的then函数