Javascript $。当我没有像预期的那样工作时
请参见下面的JavaScript:Javascript $。当我没有像预期的那样工作时,javascript,jquery,ajax,Javascript,Jquery,Ajax,请参见下面的JavaScript: function LoadAjax(){ $.when(Possibles()) //Display Possibles first .done(function () { //alert('Possibles complete); GetSQLTable(); LinkedUSNs(); }) } 我希望在GetSQLTable和LinkedUS
function LoadAjax(){
$.when(Possibles()) //Display Possibles first
.done(function () {
//alert('Possibles complete);
GetSQLTable();
LinkedUSNs();
})
}
我希望在GetSQLTable
和LinkedUSNs
开始之前,有可能完成并在网页上显示所有信息。然而,这并没有发生。首先显示来自GetSQLTable
的信息。但是,如果我添加了一个警报框(目前在上面的代码中注释掉了),那么它就可以工作了。为什么会这样
Possibles()。您可能希望检查承诺中延迟对象的当前状态(Possibles()
函数):
或者您可以在您的承诺中调用resolved(这将调用由deferred.then()或deferred.done()添加的任何doneCallbacks
):
大概Possibles()
不会返回一个承诺,但您没有提供足够的代码来说明更多。JavaScript编程中的惯例是只对构造函数使用以大写字母开头的函数名(即打算与new
一起使用的函数名)。我建议重命名你的函数。@Quentin:虽然这是真的,但大写惯例与这个问题毫无关系。
$.Deferred(function(deferred) {
// debug
console.log(deferred.state());
});
$.Deferred(function(deferred) {
// dom ready?
$(deferred.resolve);
});