promise是许诺,承诺之意,表示对某事某人做出的协议承诺,预计承诺的内容会在未来某个时间点出现。
以上的英文原意就是promise的功能所在,接下来主要记录我在学习利用jQuery制作动画过程中对promise的学习:
1.从ajax的deferred开始
在jQuery早期的版本中(1.5.0前),ajax代码是这样的:
$.ajax({
url:'',
method:'post',
data:data,
success:function(data){
console.log('成功');},
error:function(){
console.log('出错')}
});
以上的ajax将请求发送出去之后不需要在这里等待后台结果的返回,而是去继续执行后面的代码,通过设置callback来异步处理data,这里的ajax返回的是XHR对象无法进行链式调用。
在后面的jQuery版本中,开始引入promise的概念带到ajax中,之后我们可以这样使用:
$.ajax(url)
.done(function(data){
console.log('成功')})
.fail(function