如何确保调用jquery的回调

时间:2013-06-03 09:25:04

标签: jquery user-interface

如何确保调用回调代码。

确保在检查到gotMinPremium或gotMaxPremium之前回调。

我不想使用setTimeOut函数。

setTimeOut函数使脚本始终运行。还有其他方法吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您的setTimeout调用不起作用,因为调用setTimeout并不会阻止其后的所有其他内容执行,它只会注册一个代码块,以便在某个位置运行未来然后执行立即执行setTimeout之后的代码。

使用延迟对象,您可以启动两个AJAX调用并等待它们完成,然后继续:

var getMin = $.post(...);
var getMax = $.post(...);

$.when(getMin, getMax).done(function(d1, d2) {
     // d1 and d2 will contain the result of the two AJAX calls
     MinPremium = d1.MinPremium;
     MaxPremium = d2.MaxPremium;

     ...
});

请注意,这将始终进行两次AJAX调用(并使它们并行。或者:

$.post(...).done(function(data) {
    minPremium = data.MinPremium;

    // handle your minimum test here
    ...

    $.post(...).done(function(data) {
        maxPremium = data.MaxPremium;

        // handle maximum test here
        ...
    });
});

FWIW,有没有理由你不能让一个AJAX调用返回两个值?