Usando a API File sem callbacks

Portanto, é quase certo que trabalhar com a API HTML5 é uma experiência dolorosa devido a todos esses níveis de callbacks. Mesmo uma operação simples se transforma em algo desnecessariamente complexo, por isso apresento o FileManager – um invólucro simples em torno de partes frequentemente usadas da API File que usa Promises (ou Q.js, especificamente).

É super fácil de usar e, embora seja oficialmente parte da estrutura YASMF ( https://github.com/photokandyStudios/YASMF-Next ), não depende disso totalmente (você pode usar a essência em vez disso: https: / /gist.github.com/kerrishotts/7147214 ). Ele exige que o Q.js seja carregado antes de usá-lo – no entanto, você decide fazer isso.

Se você gosta de usar Q.js / Promises e usa muito a API File, talvez queira experimentá-la.

Documentos: https://github.com/photokandyStudios/YASMF-Next/wiki/FileManager

Github: https://github.com/photokandyStudios/YASMF-Next/blob/master/lib/yasmf/util/fileManager.js

Síntese (autônomo): https://gist.github.com/kerrishotts/7147214

Como um exemplo rápido, veja como isso torna a vida muito mais fácil!

var fm = new _y.FileManager(); // using YASMF
fm
.init ( fm.PERSISTENT, 1024 * 1024) // request the persistent file system with 1mb of space
.then ( function () { return fm.readDirectoryContents ( ".", {} ); } ) // read the current directory
.then ( function ( entries ) { //process the entries } ) // do something with the entries
.catch ( function ( anError ) { console.log (anError.code); } ) // log the error code
.done ();

Se você quiser usá-lo em seus projetos, ele funciona no Google Chrome (v30 ou superior) e PhoneGap / Cordova (depende do suporte da plataforma).