您的位置:首页 > 其它

done 与 then 的区别

2015-09-15 14:41 169 查看
jquery里的deferred对象,有done方法,也有then方法,区别是什么呢?

看一下这面的代码,就清楚了:

var d = $.Deferred();

  var addOne = function(x) {
    console.log(x);
    return x + 1;
  };

  var x = d.done(addOne).done(addOne).done(addOne);
  var y = d.then(addOne).then(addOne).then(addOne);

  console.log(x == d);
  console.log(y == d);

  d.resolve(1);

输出如下:

true
false
1
1
1
1
2
3

结论是:

done 只是把监听器加到promise身上,返回的是原来的promise

then 会把监听器应用到promise的值,并且会创建新的promise

一般情况下,用then就够了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: