浅谈Promise.prototype.then()接受的参数

363 阅读1分钟

关键词: Promise.prototype.then(), Promise.resolve()

resolve(value)

返回一个指定解析值为value的Promise对象.

其中, value可以是: ①普通值或对象; ②Promise对象; ③thenable对象(含then方法的对象).

传入这三种value后, 都会被包裹为Promise对象, 结果分别是: ①解析值为普通值或对象; ②解析值为传入的Promise对象本身; ③thenable转为的Promise对象.

Promise.prototype.then(res)分别接受到这的参数res, 分别是这三种包裹为的Promise对象的解析值.

var p = Promise.resolve(1234)
console.log(p instanceof Promise) // true

var p = Promise.resolve((resolve, reject) {
  resolve('hello')
})
console.log(p instanceof Promise) // true

var p = Promise.resolve({
  name: 'Bob',
  age: 100,
  then(resolve, reject) {
    resolve('hellll')
  }
})
console.log(p instanceof Promise) // true

Promise.resolve(value)

其作用与resolve效果一样. 只是resolve需要写在下面代码中:

new Promsie((resolve, reject) => {
  resolve(value)
})

Promise.resolve(value)则不用那么麻烦.

参考: Promise.resolve() - MDN