【发布时间】:2014-08-28 19:38:37
【问题描述】:
用户可以通过在 UI 中输入值来进行异步调用。
当用户更改 UI 中的值时,会进行另一个异步调用 - 可能在提供给从异步调用返回的承诺的回调被调用之前。
正在使用的异步 API 返回一个基于 Q 的承诺。
如何优雅地取消原始调用,确保即使系统返回第一次调用的值,promise 的 .then 部分也不会使用该值调用(但最终会在第二个异步调用完成)?
【问题讨论】:
-
我在返回的承诺原型上看不到拒绝。
-
promise 的使用者不能修改它 - 只有 deferred 可以修改。
-
好吧,我有一个根本的误解。作为返回 Promise 的 API 的客户端,我可以取消调用提供给 Promise 的
then方法的回调吗? -
@Ben monkey 修补请求承诺或使用支持取消的库。
-
@Ben 也 - 是的,如果您使用支持它的库,您可以。
标签: javascript promise q cancellation