Promise
首先是一个基础的Promise
let promise = new Promise(()=>{console.log("我是一个Promise")})
在控制台输出promise
知道了promise的样子,接下来我们实现它
function myPromise(callback) {
this.state = 'pending'
this.successCallBack = []
this.failedCallBack = []
this.then = (success,failed)=>{
// 就是将成功与失败的回调函数与失败的回调函数作为当前类的实例
this.successCallBack = success
this.failedCallBack = failed
}
//改变两个函数的this指向
callback(resolve.bind(this),reject.bind(this))
// 定义一个成功的函数
function resolve (params){
if(this.state === 'pending'){
this.state = 'success'
this.successCallBack(params)
}
}
function reject(promise) {
if(this.state === 'pending'){
this.state = 'failed'
this.failedCallBack(params)
}
}
}
new myPromise((resolve,reject)=>{
setTimeout(()=>{
resolve("我是Promise")
},1000)
}).then((data)=>{
console.log("data",data);
})
这样就实现了一个promise