jQuery deffered和promise对象方法,福利分享

在JavaScript中,Promise对象用于进行异步编程。它代表了一个即将完成、失败或者进行中的操作。

jQuery的deferred对象是一种可以取代promise的解决方案,并且提供了更多的功能。

  1. jQuery.Deferred()

这是一个构造函数,用于创建新的deferred对象。




var defer = $.Deferred();
  1. deferred.promise()

这个方法返回一个新的deferred对象,这个对象只能用来接收处理状态,但不能被改变状态。




var defer = $.Deferred();
var promise = defer.promise();
  1. deferred.resolve()

这个方法用于将deferred对象的状态从"未完成"改变为"已完成",并调用所有回调函数。




var defer = $.Deferred();
defer.resolve("操作已完成");
  1. deferred.reject()

这个方法用于将deferred对象的状态从"未完成"改变为"已失败",并调用所有回调函数。




var defer = $.Deferred();
defer.reject("操作失败");
  1. deferred.progress()

这个方法用于注册一个回调函数,当调用deferred.notify()时会被调用。




var defer = $.Deferred();
defer.progress(function(progress) {
    console.log("进度: " + progress + "%");
});
  1. deferred.then()

这个方法用于注册当deferred对象变为"已完成"或"已失败"时的回调函数。




var defer = $.Deferred();
defer.then(function(result) {
    console.log("成功: " + result);
}, function(error) {
    console.log("失败: " + error);
});
  1. deferred.done()

这个方法是deferred.then()的别名,用于注册当deferred对象变为"已完成"时的回调函数。




var defer = $.Deferred();
defer.done(function(result) {
    console.log("成功: " + result);
});
  1. deferred.fail()

这个方法是deferred.then()的别名,用于注册当deferred对象变为"已失败"时的回调函数。




var defer = $.Deferred();
defer.fail(function(error) {
    console.log("失败: " + error);
});
  1. deferred.always()

这个方法是deferred.then()的别名,用于注册当deferred对象变为"已完成"或"已失败"时的回调函数。




var defer = $.Deferred();
defer.always(function() {
    console.log("操作已完成或失败");
});
  1. deferred.pipe()

这个方法是deferred.then()的别名,用于创建一个新的promise对象,并在这个对象上注册回调函数。




var defer = $.Deferred();
var promise = defer.pipe(function(result) {
    return result + " - 附加信息";
});

以上就是jQuery deferred和promise对象的主要方法。这些方法可以帮助开发者在JavaScript中实现异步编程,管理和控制异步操作的生命周期。

最后修改于:2024年08月16日 08:23

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日