怎么封装一个可以终止的Promise
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,本篇内容介绍了"怎么封装一个可以终止的Promise"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!今
千家信息网最后更新 2025年02月06日怎么封装一个可以终止的Promise今天被同事问到如何中止Promise调用链,按照官方文档的意思,原生的Promise是不能被中止的,但是我们可以对其进行小小的改造,封装一个可以被"中止"的Promsie。代码如下:
阅读代码,我们利用闭包将每个Promise的reject保存起来,在需要中止的时候,去调用对应Promise的reject即可"中止"Promise的后续执行,巧妙的实现了终止Promise的then链执行。
本篇内容介绍了"怎么封装一个可以终止的Promise"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
function MyPromise(callback) {
// 1、在Pormise外部定义变量
let _resolve;
let _reject;
const promise = new Promise((resolve, reject) => {
// 2、在Pormise内部将promise的resolev和reject方法赋值给外部变量
_resolve = resolve;
_reject = reject;
callback && callback(resolve);
})
return {
promise,
_reject
}
}
let p1 = MyPromise(function (reslove) {
setTimeout(() => {
reslove(1000)
}, 3000);
})
let p2 = MyPromise(function (reslove) {
setTimeout(() => {
reslove(2000)
}, 3000);
})
let p3 = MyPromise(function (reslove) {
setTimeout(() => {
reslove(3000)
}, 3000);
})
p1.promise.then(data => {
console.log(data)
return p2.promise;
}).then(data => {
console.log(data)
return p3.promise;
}).then(data => {
console.log(data)
}).catch(e => console.log(e))
// 此处p3可以更改为p1或p2,根据需求终止promise调用链
p3._reject(444)
"怎么封装一个可以终止的Promise"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
变量
封装
时候
代码
内容
更多
知识
实用
巧妙
学有所成
接下来
可以通过
同事
困境
官方
实际
情况
意思
控制权
文档
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
企业数据库管理系统毕业论文
软件开发行业的产品经理
网络安全考试a卷答案
GIS服务器
java服务器转发请求
免费挪车软件开发
华为终端国家网络安全中心
做个网站需要服务器
南通市德信网络技术有限公司
环保软件开发面试
显示数据库的控件
网络安全教育技术产业融合示范区
北京云宽网络技术有限公司
淮南软件开发价格
gjb软件开发计划解析
数据库中 代表
计算机网络技术ppt演讲
携手共建网络安全PPT学生
查看mysql数据库白名单
苏州去哪学软件开发
企业数据库管理系统毕业论文
自己买服务器搭建独享IP多少钱
七日杀怎么装服务器模组
软件开发的时序图
网络安全法治进校园活动
服务器sql被拒绝
软件开发技术联盟
网络安全服务保障协议
湖南常见软件开发厂家价格
河北信创网络安全