首页  >  文章  >  web前端  >  ECMAScript 6 Promise 可以取消吗?

ECMAScript 6 Promise 可以取消吗?

Susan Sarandon
Susan Sarandon原创
2024-10-25 05:31:29746浏览

Can ECMAScript 6 Promises Be Cancelled?

取消 ECMAScript 6 Promise 链

有办法从 JavaScript Promise 实例中删除 .thens 吗?

ECMAscript 6 Promise 默认情况下不可取消。尽管正在进行讨论,ES6 中还没有官方解决方案。

替代方案:

  • 子类化: 创建自己的 Promise 实现允许取消,但其实现可能不可靠。
  • Userland Promise 实现:cancelable-promise 和 Promise-cancellation 等第三方库提供可取消的 Promise。

解锁测试的当前解决方案:

在测试框架中实现自定义 cancelTest 标志,以轮询取消请求。当超时发生时,将cancelTest设置为true并调用assert.fail()将测试标记为失败。

进一步更新:

解决初始问题后( fn.call() 期间发生未捕获的错误,由于测试函数本身存在未捕获的错误,因此未调用 then() 语句。通过捕获错误,测试 Promise 可以正常解决,从而允许测试完成并执行 then() 语句。

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

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