首先须明确的的是:
静态函数Promise.resolve()返回一个被解析后的的Promise对象。
静态函数Promise.reject()返回一个被拒绝的Promise对象。
Promise.prototype.then( ) 也返回一个promise
Promise.resolve()与Promise.reject()都可以给定参数。但要注意,如果使用多个参数调用resolve( ),reject( )第一个参数之后的参数都会忽略!
Promise.resolve()方法返回一个给定解析值后的Promise对象,如果传给resolve()的是一个非Promise,非thenable的立即值,那么这个promise就会以这个值完成。
Promi.resolve( )中接受的参数也是Promise.prototype.then( )中第一个回调函数的参数。见下面代码的演示:
var p = new Promise( (resolve, reject )=>{
resolve("success")
} )
p.then( function(a){
console.log(a)
},function(reason){
console.log(reason)
} )
上面代码中,resolve()接受了“success”,then( )方法被调用时,第一个函数中的参数a被success初始化,输出sucess.
其实现在对Promise对像还不是很清楚,那么就输出它吧。
上图可以看到一个[[ PromiseValue ]],传给resolve()的实参就是[[ PromiseValue ]]的值,那么then()方法中第一个函数的形参大概就是用[[ PromiseValue ]]初始化的吧。感觉是这样。要了解的更深入还得继续看啊。