手写Promise
如何使用promise
const p1 = new Promise((resolve, reject) = {
执行一个任务
成功了调用resolve()
失败了调用reject()
})
p1.then(s1, e1)
当调用resolve()之后会调用s1
【手写Promise】当失败了调用reject()会调用e1
手写Promise
class Promise2 {
quene1 = []
quene2 = []constructor(fn) {
const resolve = (data) => {
setTimeout(() => {
for (let i = 0;
i <= quene1.length;
i++) {
this.quene1[i](data)
}
})
}
const reject = (data) => {
setTimeout(() => {
for (let i = 0;
i <= this.quene2.length;
i++) {
this.quene2[i](data)
}
})
}
fn(resolve, reject)
}then(s, e) {
this.quene1.push(s)
this.quene2.push(e)
return this
}
}
推荐阅读
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 如何寻找情感问答App的分析切入点
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- java中如何实现重建二叉树
- Linux下面如何查看tomcat已经使用多少线程
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 2019女表什么牌子好(如何挑选女士手表?)