promise.resolve方法:将给定的值转化为promise对象,也就说promise.resolve返回的值就是promise对象,在返回的promise对象中,会包裹这个给定的值。
解决思路:
- 判断给定值是
promise对象还是普通值 - 给定值普通值就返回一个
promise对象,并包裹这个普通值 - 给定值是
promise就直接返回
**testPromise.js**中:
/**
* resolve方法
* 同样为静态方法
* 1.将给定值返回一个promise对象
* 2.返回的promise对象中包裹这个给定值
* 3.如果给定值是promise对象 直接返回
* 4.如果给定值是普通值,返回一个promise对象,包裹这个值
* 5.异步也可以执行
*/
static resolve (value) {
if (value instanceof testPromise) return value;
return new testPromise((resolve, reject) => { resolve(value) })
}
**index.js**中:
// 8.promise.resolve方法
function p1 () {
return new testPromise(function (resolve, reject) {
resolve("p1")
})
}
// 将给定的值转为promise对象,返回的promise对象包裹这个给定的值
testPromise.resolve(10).then(value => console.log(value));
testPromise.resolve(p1()).then(value => console.log(value));
执行结果:
执行结果依次执行,那么我们的resolve方法也是实现了的。