zoukankan      html  css  js  c++  java
  • Jquery的promise对象

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

     1 $.ajax({
     2                 url: 'abc.com/index',
     3                 type: 'post',
     4                 data: { abc:1 },
     5                 success: function (data) {
     6                     if (!data.success) {
     7                         alert(data.message);
     8                     } else {
     9 
    10                     }
    11                 }
    12             });

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

     1  $.ajax({
     2      url: 'abc.com/index',
     3      type: 'post',
     4      data: { abc:1 },
     5  }).done(function(data) {
     6      if (!data.success) {
     7          alert(data.message);    
     8      } else {
     9      }
    10  }).fail(function() {
    11      alert('请稍后重试');
    12  });

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

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

     1 function test(txt) {
     2     var dtd = $.Deferred();
     3     if (!txt.trim()) {
     4         dtd.reject({ msg: '不能为空' });
     5     } else if (!reg.test(txt)) {
     6         dtd.reject({ msg: '含有非法字符' });
     7     } else if (this.tags.indexOf(txt)>=0) {
     8         dtd.reject({ msg: '已重复' });
     9     }
        dtd.resolve();
    10 return dtd.promise(); 11 } 12 13 调用: 14 test('xxx') 15 .done(function(data){ 16 //xxxxxx 17 }) 18 .fail(function(data){ 19 //xxxx 20 })

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

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

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

  • 相关阅读:
    linux 内核优化
    ip_forward与路由转发
    mysql 集群 galera
    mysql 中间件 mycat
    mysql 主-主-从-从
    mysql 主从复制
    mysql 备份
    mysql 日志
    java中四种权限修饰符区别
    Java中关于Math的几个取整方法的区别
  • 原文地址:https://www.cnblogs.com/rufus-hua/p/5166666.html
Copyright © 2011-2022 走看看