【问题标题】:Is it possible to use jQuery's .when without an ajax call?是否可以在没有 ajax 调用的情况下使用 jQuery 的 .when ?
【发布时间】:2012-10-13 22:48:00
【问题描述】:

http://jsfiddle.net/f4hmL/235/

function showData() {
    alert("boop!");
}

function method1() {
    var dfd = $.Deferred();
    setTimeout(dfd.resolve(), 10000);
    return dfd.promise();
}

function method2() {
    var dfd = $.Deferred();
    setTimeout(dfd.resolve(), 6000);
    return dfd.promise();
}

$.when(method1(), method2()).then(showData);​

我希望只在两个延迟对象都解决时才看到“boop”,但我立即看到了。有可能实现这一目标吗? jQuery 的“when”方法是正确的函数吗?

【问题讨论】:

    标签: javascript jquery jquery-deferred


    【解决方案1】:

    你没有把正确的东西传递给setTimeout()。这不起作用,因为您正在立即调用 dfd.resolve() 并将结果传递给此行中的 setTimeout()

    setTimeout(dfd.resolve(), 10000);
    

    相反,你需要这样的东西:

    setTimeout(function() {dfd.resolve()}, 10000);
    

    在超时触发之前不会调用解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 2020-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多