📜  JQuery deferred.notify() 方法(1)

📅  最后修改于: 2023-12-03 15:02:09.542000             🧑  作者: Mango

JQuery deferred.notify() 方法

简介

在使用 JQuery 的 Deferred 对象时,可以使用 notify() 方法来触发目前正在进行中的异步操作的进度通知。该方法可以在异步操作的执行过程中,及时提供操作的进展信息给相关代码。

语法
deferred.notify( [args ] )
参数
  • args (可选): 传递给进度处理函数的额外参数,可以是任意类型的数据。
返回值

返回一个与当前 Deferred 对象关联的 Promise 对象。

注意事项
  • 该方法只对使用了 promise() 方法的 Deferred 对象生效。
  • notify() 方法将调用任何通过 promise() 方法附加到该 Deferred 对象的进度处理函数。
  • 如果还未激活的进度处理函数,将不会被调用。
示例
function loadData() {
  var deferred = $.Deferred();
  var progress = 0;
  
  var timer = setInterval(function() {
    progress += 10;
    deferred.notify("Progress: " + progress + "%");
    
    if(progress >= 100) {
      clearInterval(timer);
      deferred.resolve("Data loaded successfully");
    }
  }, 1000);
  
  return deferred.promise();
}

var promise = loadData();

promise.progress(function(message) {
  console.log(message);
});

promise.done(function(result) {
  console.log(result);
});
结果

每秒钟将会输出当前进度的消息,当进度达到 100% 时,输出加载成功的消息。

Progress: 10%
Progress: 20%
Progress: 30%
...
Data loaded successfully

以上就是关于 JQuery deferred.notify() 方法的介绍。该方法可以用于在异步操作执行过程中,向相关代码传递进度通知。