首页  >  文章  >  web前端  >  **你可以取消 JavaScript Promise 中的链吗?**

**你可以取消 JavaScript Promise 中的链吗?**

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-25 14:30:02779浏览

**Can You Cancel the Chain in JavaScript Promises?**

取消 Vanilla ECMAScript 6 Promise 链

问题

是否可以清除 JavaScript Promise 实例的事件处理程序 .thens?

背景

当使用特定框架的测试超时时,超时Promise 会调用assert.fail() 将测试标记为失败。但是,测试继续运行,因为测试 Promise(结果)仍在等待解析。

所需的解决方案

理想情况下,可以清除结果变量上剩余的 .thens 以防止进一步执行测试。

答案

不幸的是,ECMAScript 6 中没有内置方法来取消 Promises 或其 .thens 处理程序。 ES 委员会仍在讨论未来 ECMAScript 版本中可能采用的潜在解决方案。

可能的解决方法

在正式解决方案实施之前,您可以考虑以下解决方法:

  • 子类化:创建您自己的包含取消逻辑的 Promise 子类。
  • 用户态 Promise 实现:探索提供取消功能的第三方 Promise 实现,例如cancelable-promise或promise-cancellation。

附加说明

在问题中提到的特定情况下,测试未结束的问题是由于未捕获的错误测试功能。要解决此问题,您应该在测试函数中适当处理错误。

以上是**你可以取消 JavaScript Promise 中的链吗?**的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn