参考:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> // case 1, alert success 1, success 2 var dtd = $.Deferred(); // 新建一个Deferred对象 dtd.resolve(‘success‘); dtd.then(function(msg){ alert(msg + ‘ 1‘); return msg; }).fail(function(msg){ alert(msg + ‘ 1‘) return msg }).then(function(msg){ alert(msg + ‘ 2‘) return msg }).fail(function(msg){ alert(msg + ‘ 2‘) return msg }) </script>
上面一段代码的执行结果是 success 1, success 2.
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> // case2, alert success1, fail 1, fail 2 var dtd = $.Deferred(); // 新建一个Deferred对象 dtd.resolve(‘success‘); dtd.then(function(msg){ alert( msg + ‘ 1‘); return new $.Deferred().reject(‘fail‘); }).fail(function(msg){ alert( msg + ‘ 1‘); return new $.Deferred().resolve(‘success‘); }).then(function(msg){ alert( msg + ‘ 2‘); return msg; }).fail(function(msg){ alert( msg + ‘ 2‘); return msg; }) </script>
这一段代码执行结果是 success1, fail 1, fail 2. 能解释一下否?
时间: 2024-10-06 00:10:59