怎么封装一个可以终止的Promise
发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇内容介绍了"怎么封装一个可以终止的Promise"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!今
千家信息网最后更新 2024年09月22日怎么封装一个可以终止的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安全错误
数据库的锁怎样保障安全
网络安全职业要求
网络安全的童谣怎么写
学习网络安全跟英语有关系吗
软件开发税率为0的政策
网络安全的发展方案
识别软件开发招标文件
没有dhcp服务器
剑三技能数据库
qt5软件开发总结
java软件开发推荐书籍
网络安全检查官
新时代网络安全运维
数据库的rn是什么意思
明日之后利文河下一个服务器
网络安全的态度感知
宁畅服务器排名
福州扫码洗车软件开发
卫健局网络安全方案
系统服务器停机时间8.5小时
Arisc安全数据库
海中王互联网科技
国内云服务器绕备案
网络安全节目观后感
vs2010数据库开发
java软件开发推荐书籍
上海智能化网络技术商家
公安网络安全检查大概几天
什么芯片可以连接服务器
乡镇网络安全考核管理办法
text绑定数据库