mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 12:24:57 +00:00

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>
|