手写一个promise
Promise使用例子:
let p = new Promise((resolve,reject)=>{
//do some thing
let res = 'any';
resolve(res);
}}
p.then(res=>{
//res是接到从resolve来的值
console.log(res);
},err=>{
console.log(err)
})
- 基本功能:
1.promise是一个类,有then方法
2.new的时候传进去一个执行器,执行器有resolve和reject两个函数
3.then方法里传进去两个函数,分别对应resolve的回调和reject回调
上述功能具体实现:
class Promise{
//actuator是new的时候传进来的执行器
constructor(actuator){
let resolve = ()=>{};
let reject = ()=>{};
actuator(resolve ,reject)
}
then(succBack,errBack){
succBack();
errBack()
}
}
- 在基本功能的基础上添加功能:
1.Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。.resolve后状态是fulfilled,reject后状态是rejected ;
2.resolve出来的值作为succBack的参数;reject出来的值作为