[Web] 取消Promise
转载自 为Promise插上可取消的翅膀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | const makeCancelable = (promise) => { let hasCanceled_ = false ; const wrappedPromise = new Promise((resolve, reject) => { promise.then((val) => hasCanceled_ ? reject({isCanceled: true }) : resolve(val) ); promise. catch ((error) => hasCanceled_ ? reject({isCanceled: true }) : reject(error) ); }); return { promise: wrappedPromise, cancel() { hasCanceled_ = true ; }, }; }; |
1 2 3 4 5 6 7 8 9 | //调用 const somePromise = new Promise(r => setTimeout(r, 1000)); //创建一个异步操作 const cancelable = makeCancelable(somePromise); //为异步操作添加可取消的功能 cancelable .promise .then(() => console.log( 'resolved' )) . catch (({isCanceled, ...error}) => console.log( 'isCanceled' , isCanceled)); // 取消异步操作 cancelable.cancel(); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2014-12-09 [Android Pro] 查看 keystore文件的签名信息 和 检查apk文件中的签名信息
2014-12-09 [Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40