一直用jquery,ajax一直是这么写:

 $.ajax({
url: 'abc.com/index',
type: 'post',
data: { abc:1 },
success: function (data) {
if (!data.success) {
alert(data.message);
} else { }
}
});

前一段时间 看见别人这么写觉得很不错:

  $.ajax({
url: 'abc.com/index',
type: 'post',
data: { abc:1 },
}).done(function(data) {
if (!data.success) {
alert(data.message);
} else {
}
}).fail(function() {
alert('请稍后重试');
});

突然感觉 done fail 这种写法不错....今天在写js的时候想 自定义的方法怎么实现 这种 ?

然后搜索下发现jquery封装了promise对象 只需要这么用:

 function test(txt) {
var dtd = $.Deferred();
if (!txt.trim()) {
dtd.reject({ msg: '不能为空' });
} else if (!reg.test(txt)) {
dtd.reject({ msg: '含有非法字符' });
} else if (this.tags.indexOf(txt)>=0) {
dtd.reject({ msg: '已重复' });
}
    dtd.resolve();
return dtd.promise();
} 调用:
test('xxx')
.done(function(data){
//xxxxxx
})
.fail(function(data){
//xxxx
})

说明 test 方法返回 的是一个promise对象

dtd.reject 会回调所有的 fail 方法

dtd.resolve 会回调 所有的 done方法

最新文章

  1. Asp.net WebApi 项目示例(增删改查)
  2. python 进程间共享数据 (一)
  3. MVC过滤器之 OnActionExcuted
  4. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)
  5. 关于如何写UI及屏幕适配的一些技巧
  6. 使用stdarg.h实现可变长度参数
  7. JBOSS的安全配置 .
  8. java下载网络图片
  9. nno_setup制作升级包必须面临的几个问题 2
  10. C# 操作IE浏览器
  11. 编写爬虫程序的神器 - Groovy + Jsoup + Sublime(转)
  12. POJ1734/Floyd求最小环
  13. acm课程练习2--1003
  14. opencv批处理提取图像的特征
  15. 科普 TLS 1.3—新特性与开启方式
  16. Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
  17. 14.并发与异步 - 2.任务Task -《果壳中的c#》
  18. 通过Solrj实现对索引库中数据的局部更新操作
  19. [au3]批量输入号码程序
  20. localStorage单页面及不同页面监听变动

热门文章

  1. 静态页面表单中js验证
  2. 并查集【p2700】逐个击破
  3. jboss启动时java VM参数设置
  4. 【kruscal】【最小生成树】poj3522 Slim Span
  5. 【bzoj1296】【[SCOI2009]粉刷匠】多次背包dp及小小的优化
  6. 杂谈PID控制算法——第二篇:调·三个量
  7. Centos 6.5 优化 一些基础优化和安全设置
  8. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之工作流开发随笔三
  9. JavaScript 的闭包用于什么场景
  10. 【开源类库学习】MBProgressHUD(提示框)