- From: Benjamin Gruenbaum <notifications@github.com>
- Date: Fri, 20 Nov 2020 07:29:07 -0800
- To: w3c/FileAPI <FileAPI@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 20 November 2020 15:29:20 UTC
Hey, It would be useful to use the web platform standard cancellation method to abort readers. Other web platform code (like fetch) supports cancellation through signals. Code before: ```js async function readFile(file, { signal }) { var reader = new FileReader(); const handler = e => reader.abort(); signal.addEventListener('abort', handler, { once: true }); reader.addEventListener('load', () => signal.removeEventListener('abort', handler)); reader.addEventListener('error', () => signal.removeEventListener('abort', handler)); const p = new Promise((resolve, reject) => { reader.onload = (e) => resolve(e.target.result); reader.onerror = (e) => reject(reader.error); }); reader.readAsText(file); return await p; } ``` Possible suggested change, assuming signal support: ```js async function readFile(file, { signal }) { var reader = new FileReader({ signal }); const p = new Promise((resolve, reject) => { reader.onload = (e) => resolve(e.target.result); reader.onerror = (e) => reject(reader.error); }); reader.readAsText(file); return await p; } ``` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/FileAPI/issues/159
Received on Friday, 20 November 2020 15:29:20 UTC