浅谈jQuery的promise
2018-06-24 01:07:11来源:未知 阅读 ()
jquery中的Promise,也就是我们所知道的Deferred对象。
举例1:
var data="";
function runAsync(){
var def = $.Deferred();
//做一些异步操作
setTimeout(function(){
console.log('执行完成');
data='随便什么数据'
def.resolve(data);
}, 0);
//可以在外部改变状态
return def; //返回的deferred对象
}
console.log(data)//打印的是空字符串;
runAsync().then(function(data){
console.log(data);//打印:'随便什么数据'
});
这是我们就可以在ajax请求拿到数据的后,执行我们的方法,不用在ajax成功回调的里面写繁琐的代码。此方法不好的地方在于,外部可以改变状态(弊端),看例二。
举例2:
var data="";
function runAsync(){
var def = $.Deferred();
//做一些异步操作
setTimeout(function(){
console.log('执行完成');
data='随便什么数据'
def.resolve(data);
}, 0);
//可以在外部改变状态
return def; //返回的deferred对象
}
console.log(data)//打印:空字符串;
var def=runAsync();
def.then(function(data){
console.log(data);//不打印了!!!
});
def.resolve("我提前结束啦,不等数据啦")//打印:我提前结束啦,不等数据啦。(手动改变状态了)
但是我们不想在外部串改状态,return def 换成 def.promise(),会保证状态不被提前更改。更加详细的内容请点击:https://www.cnblogs.com/lvdabao。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Jquery插件写法笔记整理 2020-03-29
- 基于JQuery的多标签实现代码 2020-03-29
- 关于jQuery UI 使用心得及技巧 2020-03-29
- Jquery图形报表插件 jqplot简介及参数详解 2020-03-25
- jQuery插件开发全解析 2020-03-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash