Add new Blob.arrayBuffer method

Former-commit-id: bdb97550a8558a6e0364a10db061aa8cdff5075b [formerly d3df633a0bbe50087aad6cf234887f76c6a8fa79]
Former-commit-id: 28155de28dffa940acceb866b203d6b143501374
This commit is contained in:
Jaifroid 2020-03-01 10:59:42 +00:00
parent 5e2377393e
commit 509ee610c2

View File

@ -154,35 +154,41 @@ define(['q'], function(Q) {
return result;
});
};
var readInternal = function(file, begin, end) {
return Q.Promise(function(resolve, reject) {
if (file.readMode === 'electron') {
// We are reading a packaged file and have to use Electron fs.read (so we don't have to pick the file)
fs.open(file.path, 'r', function (err, fd) {
if (err) {
reject(err);
} else {
var size = end - begin;
var arr = typeof Buffer !== 'undefined' && Buffer.alloc(size) || new Uint8Array(size);
fs.read(fd, arr, 0, size, begin, function (err, bytesRead, data) {
if (err) reject(err);
fs.close(fd, function (err) {
var readInternal = function (file, begin, end) {
if ('arrayBuffer' in Blob.prototype && file.readMode !== 'electron') {
return file.slice(begin, end).arrayBuffer().then(function (buffer) {
return new Uint8Array(buffer);
});
} else {
return Q.Promise(function (resolve, reject) {
if (file.readMode === 'electron') {
// We are reading a packaged file and have to use Electron fs.read (so we don't have to pick the file)
fs.open(file.path, 'r', function (err, fd) {
if (err) {
reject(err);
} else {
var size = end - begin;
var arr = typeof Buffer !== 'undefined' && Buffer.alloc(size) || new Uint8Array(size);
fs.read(fd, arr, 0, size, begin, function (err, bytesRead, data) {
if (err) reject(err);
else return resolve(data);
fs.close(fd, function (err) {
if (err) reject(err);
else return resolve(data);
});
});
});
}
});
} else {
var reader = new FileReader();
reader.readAsArrayBuffer(file.slice(begin, end));
reader.addEventListener('load', function(e) {
resolve(new Uint8Array(e.target.result));
});
reader.addEventListener('error', reject);
reader.addEventListener('abort', reject);
}
});
}
});
} else {
var reader = new FileReader();
reader.readAsArrayBuffer(file.slice(begin, end));
reader.addEventListener('load', function (e) {
resolve(new Uint8Array(e.target.result));
});
reader.addEventListener('error', reject);
reader.addEventListener('abort', reject);
}
});
}
};
return {