javascript - $.when.then() 执行的 jQuery 序列

标签 javascript jquery

我试图按特定顺序执行函数,但在理解 $.when() 时遇到了问题。

function x() {
  def = $.Deferred();
  $.when(def).then(console.log(def.state()));
}
x();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

我的理解是,当 def 被解析时,console.log(def.state()) 应该执行。换句话说,由于 def 处于 pending 状态,所以在执行 x() 时我不应该得到任何结果吗?

最佳答案

then 需要回调,因此您应该创建一个包装函数:

function x() {
  def = $.Deferred();
  $.when(def).then(function(){
    console.log(def.state())
  });
}
x();

关于javascript - $.when.then() 执行的 jQuery 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42375939/

相关文章:

javascript - 在 TypeScript 中使用 interfect 定义对象数组?

jquery - .replace() 出现问题 - 仅适用于第一个匹配的字符?

javascript - jQuery 在 resize() 之后错误的 outerWidth() 和 outerHeight()

jquery - Django:注册期间有效/可用的用户名/电子邮件的ajax响应

javascript - jquery 复选框 onchange 的问题

javascript - 无法使用 sorttype 函数对 jqGrid 列进行排序

Javascript Try Catch 与 Catch 链

javascript - 如何使用传单绘制 100m x 100m 的矩形

javascript - jQuery 脚本问题,为用户提供一个带有两个 PB 的弹出对话框。一个用于继续 session ,另一个用于结束 session

javascript - 如何在 MVC3 中将鼠标悬停在文本上时显示部分 View ?