如何确保调用回调代码。
确保在检查到gotMinPremium或gotMaxPremium之前回调。
我不想使用setTimeOut函数。
setTimeOut函数使脚本始终运行。还有其他方法吗?
谢谢
答案 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调用返回两个值?