var reader = new FileReader(),
file1 = new Blob(['Hola'],{type : 'text/plain'}),
file2 = new Blob(['Mundo'],{type : 'text/plain'}),
result = null;
reader.addEventListener('load',function(event){
result = this.result;
});
reader.readAsText(file1);
var interval = setInterval(function(){
if(reader.readyState === 2){
clearInterval(interval);
reader.readAsText(file2);
}
},100);
supongamos que necesito leer 2 archivos de manera secuencial con la misma instancia de FileReader, entonces para evitar que me salte un error "DOMException: Failed to execute 'readAsText' on 'FileReader': The object is already busy reading Blobs." entonces lo que hago es utilizar un setInterval y que este revisando cada 100 milisegundos si la propiedad readyState de reader es igual a 2(DONE) y entonces ahí si leer el otro archivo.
sin embargo me gustaría saber como puedo lograr algo parecido utilizando promesas ya que lo e intentado y la verdad es que no e podido conseguir el hecho de leer un archivo, esperar que termine y entonces ahí si comenzar a leer otro con la misma instancia de FileReader (realmente no me interesa si es peor intentar hacerlo de manera sincrona simplemente quiero saber como poder hacer esto utilizando promesas y si de alguna manera puedo sustituir los "listeners"(load,loadstart,progress,loadend etc...) por promesas)