Javascript $.Deferred notify()&;进程()同步混淆
我正在使用一个延迟对象,有时我想通知同步对象(如果缓存中已经有结果) 为什么它只收到最后一次通知Javascript $.Deferred notify()&;进程()同步混淆,javascript,jquery,Javascript,Jquery,我正在使用一个延迟对象,有时我想通知同步对象(如果缓存中已经有结果) 为什么它只收到最后一次通知 var dfd = $.Deferred(); for(var i = 0; i < 3; i++){ dfd.notify(i); } dfd.progress(function(i){ console.log(i); // 2 // expected: 0, 1, 2 }); var-dfd=$.Deferred(); 对于(变量i=0;i
var dfd = $.Deferred();
for(var i = 0; i < 3; i++){
dfd.notify(i);
}
dfd.progress(function(i){
console.log(i); // 2
// expected: 0, 1, 2
});
var-dfd=$.Deferred();
对于(变量i=0;i<3;i++){
dfd.通知(i);
}
dfd.进度(功能(i){
console.log(i);//2
//预期值:0、1、2
});
您只收到一个通知,因为在调用notify后设置了进度。 如果先设置进度方法,您将收到所有:
var dfd = $.Deferred();
dfd.progress(function(i){
console.log(i);
});
for(var i = 0; i < 3; i++){
dfd.notify(i);
}
var-dfd=$.Deferred();
dfd.进度(功能(i){
控制台日志(i);
});
对于(变量i=0;i<3;i++){
dfd.通知(i);
}
发生这种情况的原因是,当您设置progress方法并且已经调用了notify时,您可能只希望接收最后一个值,因此可以立即反映当前状态