我正在学习延期,但无法弄清楚这是如何/为什么起作用的:
<html>
<head>
</head>
<body>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$("div").each(function (i) {
$(this).delay(1000 * i).fadeOut();
}).promise().done(function () { console.log("it's done"); });
</script>
</body>
</html>
特别是:为什么我可以在每个之后调用 promise?为什么技术上可行?我已经控制台记录:
console.log($("div").each(function (i) {}));
我确实在原型中看到了 promise方法。但是,我的每个函数都没有返回任何值,只有一个:
$(this).delay(1000 * i).fadeOut();
那么 promise 如何与动画结果相关联呢?(基本上每次迭代的结果)
编辑1:为了清楚起见,也许我应该这样写我的问题:
在所有动画完成后调用done方法是如何完成的 == promise 如何与在每个回调函数内部执行的动画互连。