由于$.Deferred();
可以解析对象并且许多人可以订阅done/always/fail
方法-
我心想:“好吧,我可以将它用作发布者/订阅者......”
所以我做了一个简单的测试(JSBIN):
我有 3 个复选框:
我想在检查所有 3 个时显示警报:
var t = $.Deferred();
$(":checkbox").on('click',function (){
t.resolve("blabla");
});
t.done(function (val)
{
if($(":checkbox:checked").length==3) alert('ok');
});
但done
回调只解决一次。
有什么我可以做的,所以这段代码将作为订阅者/发布者运行吗?
注意
我知道还有很多其他的选择deferred
。但我的问题具体是关于deferred
(可以/不能用作发布/订阅)。