Ich möchte true
im Ergebnis, wenn die Funktion checkLoading()
Anruf ist.warten bis Funktion Ergebnis in jquery zurückgeben
Ich habe eine Jquery-Funktion:
function checkLoading() {
console.log('checking loading');
if ($('div.vX.UC').css('display') === 'none') {
console.log('Loading Complete');
return true;
} else {
setTimeout(function() {
checkLoading();
}, 500)
}
}
ich diese Funktion nenne wie unten:
if(checkLoading()){
// do something
}
Aber vor Funktion Rückkehr undefined
und nicht für die final
Rückkehr warten.
Ich habe dies mit Deferred
versucht. Aber das funktioniert nicht, ich habe versucht, Lösung:
function checkLoading() {
var dfrd1 = $.Deferred();
console.log('checking loading');
if ($('div.vX.UC').css('display') === 'none') {
console.log('Loading Complete');
return dfrd1.promise();
} else {
setTimeout(function() {
checkLoading();
}, 500)
}
// return dfrd1.resolve();
//return false;
}
checkLoading().done(function() {
// do something.
});
Aber diese Lösung funktioniert nicht für mich.
Was ändert sich dies, es zu verbergen? '$ ('div.vX.UC'). css ('display') === 'none'', von wo aus man/callback zurückliefern möchte, Schleifen mit Timeout sind nie eine gute Idee. imho –