mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:32:45 +00:00 
			
		
		
		
	 77d32fcb5f
			
		
	
	
		77d32fcb5f
		
	
	
	
	
		
			
			Some steps are still to be implemented, namely: * Properly aborting the read algorithm * Handling BinaryString type properly * Setting error on any error But as it stands, this is enough functionality for the basic case of reading the contents of a blob using the FileReader API.
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <script src="../include.js"></script>
 | |
| <script>
 | |
|     asyncTest((done) => {
 | |
|         const array = ['This is some data to be read! 🦬'];
 | |
|         let blob = new Blob(array, { type: "application/octet-stream"});
 | |
|         let fileReader = new FileReader();
 | |
| 
 | |
|         let count = 0;
 | |
| 
 | |
|         // Trigger events in order of readAs Text->DataURL->ArrayBuffer
 | |
|         fileReader.addEventListener("loadend", () => {
 | |
|             ++count;
 | |
| 
 | |
|             if (count === 1) {
 | |
|                 println(`${count}: readAsText(): '${fileReader.result}' error: '${fileReader.error}'`);
 | |
|                 fileReader.readAsDataURL(blob);
 | |
|             } else if (count === 2) {
 | |
|                 println(`${count}: readAsDataURL(): '${fileReader.result}' error: '${fileReader.error}'`);
 | |
|                 fileReader.readAsArrayBuffer(blob);
 | |
|             } else if (count === 3) {
 | |
|                 println(`${count}: readAsArrayBuffer(): '${new TextDecoder().decode(fileReader.result)}' error: '${fileReader.error}'`);
 | |
|                 done();
 | |
|             }
 | |
|         });
 | |
| 
 | |
|         fileReader.readAsText(blob);
 | |
|     });
 | |
| </script>
 |