标签:
参考 http://www.bitstorm.org/weblog/2012-1/Deferred_and_promise_in_jQuery.html
http://joseoncode.com/2011/09/26/a-walkthrough-jquery-deferred-and-promise/
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script src="jquery.js"></script> <script type="text/javascript"> function a(){ var post = $.ajax({ type: "POST", url: "res.php", data: { name: "John", location: "Boston" } }); return post; //同时也是一个promise对象 是可以使用then的 } //这里演示一下deferred的用法 function b(){ var post = a(); var deferred = $.Deferred(); post.done(function(){ deferred.resolve("hello world"); //可以给下一个函数Promise接受 }).fail(function(){ deferred.reject(‘some thing wrong‘); }); return deferred.promise(); } function c(){ var post = b(); post.then(function(data){ console.log(data); },function(data){ console.log(data); //这里接受到了错误 并且还是可以继续向下一层传递的 原来一直以为某一层接收到的是错误就不能传到下一层 }); return post; } function d(){ var post = c(); post.then(function(data){ console.log(‘d ‘ + data); },function(data){ console.log(‘d ‘ + data); }) } d(); </script> </body> </html>
标签:
原文地址:http://www.cnblogs.com/cart55free99/p/4176819.html