FileSystemDirectoryReader.readEntries nos permite leer el contenido del archivo, sin embargo, es de naturaleza asíncrona y necesito hacerlo de forma síncrona. He intentado usar async y eso tampoco se ajusta a mi caso de uso. Lo que quiero es algo similar a esto. Lo que congela el hilo principal.
var request = new XMLHttpRequest(); request.open('GET', '/bar/foo.txt', false); // `false` makes the request synchronous request.send(null); if (request.status === 200) { console.log(request.responseText); }Sé que es una mala experiencia de usuario, pero parece inevitable en este momento.
el caso de uso
Tenemos varios controladores de eventos que escuchan el evento drop. Necesito algo de procesamiento en mi controlador de eventos (está garantizado que será el primero en recibir) en función del cual puedo decidir si los otros controladores de eventos no deben procesar el evento usando event.stopImmediatePropagation pero si estoy haciendo cosas que son asíncronas los otros controladores reciben y continúan procesando el evento incluso si decido detener la propagación. No tengo control sobre los otros controladores y no puedo modificar su código.
He intentado detener la propagación antes de mi llamada asíncrona y enviar el evento después del procesamiento, pero está resultando difícil ya que event.dataTransfer está vacío y los otros controladores de eventos no obtienen los archivos. Forzar la configuración de los resultados de transferencia de datos en isTrusted se establece en falso para el evento
Elementos de Javascript DataTransfer que no persisten a través de llamadas asíncronas