Jquery 延迟/变量立即完成
Jquery Deferred/ variable is done immediately
这个fiddle显示了我的代码。我有三个功能。 functionB returns 用户输入。用户需要输入的时间是未知的。问题是,函数 A 不等待并触发
$.when(def1).done(functionC);
马上。它必须等待,直到 functionB 响应,无论需要多长时间。所以应该有 "User Input" 警报,而不是 "undefined"。如何做呢?谢谢
您没有 return 正确地延迟对象。你应该return延迟对象在when()
函数中操作它,并在几秒钟后解决它。
function functionB() {
var deferred = $.Deferred();
setTimeout(function () {
deferred.resolveWith(this, ["User Input"]);
}, 5000);
return deferred;
}
这个fiddle显示了我的代码。我有三个功能。 functionB returns 用户输入。用户需要输入的时间是未知的。问题是,函数 A 不等待并触发
$.when(def1).done(functionC);
马上。它必须等待,直到 functionB 响应,无论需要多长时间。所以应该有 "User Input" 警报,而不是 "undefined"。如何做呢?谢谢
您没有 return 正确地延迟对象。你应该return延迟对象在when()
函数中操作它,并在几秒钟后解决它。
function functionB() {
var deferred = $.Deferred();
setTimeout(function () {
deferred.resolveWith(this, ["User Input"]);
}, 5000);
return deferred;
}