首页 > 代码库 > jquery中的Promise 之二

jquery中的Promise 之二

参考 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>

 

jquery中的Promise 之二