Ich habe eine Funktion zum Entfernen eines angegebenen Verzeichnisses mit dem cordova-plugin-file Plugin erstellt. Die Funktion selbst funktioniert korrekt und entfernt das Verzeichnis, aber ich versuche, basierend auf dem Ergebnis, ein Erfolgs- oder Fehlerergebnis zurückzugeben und bin völlig festgefahren.Lokale Variable wurde nicht richtig zugewiesen
(function() {
var app = {
...
function removeDirectory(path) {
var result = false;
window.resolveLocalFileSystemURL(path, function(dir, status) {
dir.removeRecursively(function(dir, status) { // Success callback
result = true;
console.log(result); // true
}, function(error) { // Failure callback
console.log('Error removing directory: ' + getFileError(error.code));
});
console.log(result); // false
});
console.log(result); // false
return result;
}
}
})();
resolveLocalFileSystemURL()
und removeRecursively()
beide keinen Wert zurück.
Egal was ich versuche, result
endet immer false
. Ich habe sogar versucht, eine globale (außerhalb der IIFE) Variable zu verwenden, aber selbst diese hält ihren Wert nicht korrekt.
Es scheint wie eine Variable Umfang Problem, aber ich weiß nur nicht, wie es zu beheben.
Mögliches Duplikat von [Wie gebe ich die Antwort von einem asynchronen Aufruf zurück?] (Http: // stackoverflow.com/questions/14220321/how-do-i-Return-die-Antwort-von-einem asynchronen Anruf) – Andreas