当前位置: 首页 > news >正文

JQuery $.when $.deferred

$.when$.deferred 是 jQuery 提供的工具,用于处理异步操作的结果,尤其是当你需要协调多个异步操作(如 AJAX 请求)时非常有用。它们允许你在所有异步操作完成后执行某些操作,并能够更好地管理复杂 的异步逻辑。

$.deferred

$.deferred 是 jQuery 的延迟对象,允许你创建一个可以手动触发的异步操作。它类似于其他语言中的 Promise,可以用来协调多个异步操作。

创建 Deferred 对象:

var deferred = $.Deferred();

触发完成或失败:

deferred.resolve(); // 标记为完成
deferred.reject();  // 标记为失败

处理完成或失败的回调:

deferred.done(function() {console.log("操作成功");
}).fail(function() {console.log("操作失败");
});

$.when

$.when 是 jQuery 的一个方法,用于处理多个异步操作的结果。它可以接受一个或多个 deferred 对象或其他可以被转换成 Promise 的对象,并返回一个新的 deferred 对象,代表所有传入的异步操作完成后的状态。

等待多个异步操作完成:

$.when(promise1, promise2).done(function(result1, result2) {console.log("所有操作成功:", result1, result2);
}).fail(function() {console.log("某些操作失败");
});

apply

apply 是 JavaScript 的一个内置方法,它允许你以数组形式传递参数。这在需要将数组内容作为多个参数传递给函数时非常有用。

当你有一个数组(比如多个 AJAX 请求的数组),并希望将这些请求传递给 $.when,你可以使用 apply 将数组元素作为单独的参数传递。

// 创建多个 AJAX 请求
var requests = [$.ajax({ url: "/api/endpoint1" }),$.ajax({ url: "/api/endpoint2" }),$.ajax({ url: "/api/endpoint3" })
];// 使用 $.when 和 apply 等待所有请求完成
$.when.apply($, requests).done(function(response1, response2, response3) {// 所有请求成功完成console.log("请求结果:", response1, response2, response3);
}).fail(function() {// 其中一个或多个请求失败console.log("至少一个请求失败");
});

http://www.mrgr.cn/news/3371.html

相关文章:

  • CV学习笔记6-图像样本增强
  • 如何清理win备用内存?备用内存过大怎么办?
  • 【llamaindex和GraphRAG】
  • JS中构造函数继承问题注意事项总结
  • 备份docker所有镜像
  • 数据分析面试常见50个问题及解答要点
  • 力扣 411周赛
  • vue3+ts+vite+pinia+element-plus搭建一个项目
  • 武汉漂流记-第一集
  • 服务器托管:单线机房与双线机房之间的区别
  • 纯php+txt实现即时通讯
  • Qt 系统相关 - 网络与音视频
  • c++基础——指针的使用条件
  • 线段树-点修区查
  • 培训第三十二天(学习playbook-roles,脚本创建数据库和表,mycat读写分离)
  • Selenium + Python 自动化测试16(Python基础复习)
  • VBA技术资料MF187:写入文件属性及自定义属性
  • Redis性能压测、监控工具及优化方案
  • 解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的方案
  • 运维团队如何有效利用自动巡检与报表功能提升管理效率