Parantatatam
mag Cookies & Kekse
Hallo Tutorianer,
ich bin gerade dabei eine eigene Chrome-App zu erstellen, in welcher es unter anderem notwendig ist, dass man MediaGalleries rekursiv durchsuchen kann, um alle Dateien und Verzeichnisse daran am Ende in einem Array zu haben. Da das Auslesen der APIs von Chrome-Apps über Callbacks läuft, ist das ein wenig schwieriger, weshalb ich das gerne über die Promise-API lösen wollte. Jedoch komm ich gerade nicht dahinter, wie ich es so lösen kann, dass mir eine Funktion am Ende ein Promise-Objekt zurückliefert, welches mir dann einen Callback ermöglicht, welcher mir alle gefundenen Einträge liefert.
Allerdings ist hiermit nicht sichergestellt, dass direkt nach dem Aufruf der Funktion alle Einträge gefunden wurden. Außerdem möchte ich keine "globale" Variable haben, in der ich die Einträge sammle.
Mein Problem besteht hauptsächlich darin, wann ich den Resolve-Aufruf des Promise-Objektes starten soll, da ich durch die Callbacks doch nie genau weiß, ob ein Callback nun der letzte ist oder nicht. Vielleicht befinde ich mich damit aber auch nur in einer Sackgasse und es gibt eine Möglichkeit, mit der ich genau das umgehen oder lösen kann.
ich bin gerade dabei eine eigene Chrome-App zu erstellen, in welcher es unter anderem notwendig ist, dass man MediaGalleries rekursiv durchsuchen kann, um alle Dateien und Verzeichnisse daran am Ende in einem Array zu haben. Da das Auslesen der APIs von Chrome-Apps über Callbacks läuft, ist das ein wenig schwieriger, weshalb ich das gerne über die Promise-API lösen wollte. Jedoch komm ich gerade nicht dahinter, wie ich es so lösen kann, dass mir eine Funktion am Ende ein Promise-Objekt zurückliefert, welches mir dann einen Callback ermöglicht, welcher mir alle gefundenen Einträge liefert.
Javascript:
var files = [];
function readEntries (entries) {
for ( var i in entries ) {
files.push( entries[i] );
if ( entries[i].isDirectory ) {
entries[i].root.createReader().readEntries( readEntries );
}
}
}
Mein Problem besteht hauptsächlich darin, wann ich den Resolve-Aufruf des Promise-Objektes starten soll, da ich durch die Callbacks doch nie genau weiß, ob ein Callback nun der letzte ist oder nicht. Vielleicht befinde ich mich damit aber auch nur in einer Sackgasse und es gibt eine Möglichkeit, mit der ich genau das umgehen oder lösen kann.
Zuletzt bearbeitet: