非常简单的问题,我以为我能解决这个问题,但我却找不到答案。
是否可以清除/删除附加到延迟对象完成/失败/始终队列的处理程序。
var dfd = $.Deferred()
dfd.done(foo).fail(bar);
// User interacts with the page in a way that I do not want to fire foo or bar
// when dfd is resolved or rejected
<<answer here>>
最佳答案
不,没有机制可以删除 $.Deferred()
上已注册的回调。
大多数时候,您只能访问 deferred 的 .promise()
接口(interface),这仅允许您注册回调并读取 Promise 的状态 - 您无法修改 通过任何公开方法的 promise 。
在您的情况下,您将需要这些注册的回调来检查由用户交互更改的其他一些状态变量,然后让它们决定是否继续。
关于jquery - 清除/删除附加到 $.Deferred 对象的处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19560715/