对Promise.resolve(),Promise.reject(),Promise.prototype.then()的初步了解

来源:互联网 发布:mac os sierra降级 编辑:程序博客网 时间:2024/05/18 01:45

首先须明确的的是:

静态函数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  ]]初始化的吧。感觉是这样。要了解的更深入还得继续看啊。



原创粉丝点击