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;
}

https://jsfiddle.net/4DAfn/295/