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,8 +154,13 @@ define(['q'], function(Q) {
return result; return result;
}); });
}; };
var readInternal = function(file, begin, end) { var readInternal = function (file, begin, end) {
return Q.Promise(function(resolve, reject) { 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') { 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) // 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) { fs.open(file.path, 'r', function (err, fd) {
@ -176,13 +181,14 @@ define(['q'], function(Q) {
} else { } else {
var reader = new FileReader(); var reader = new FileReader();
reader.readAsArrayBuffer(file.slice(begin, end)); reader.readAsArrayBuffer(file.slice(begin, end));
reader.addEventListener('load', function(e) { reader.addEventListener('load', function (e) {
resolve(new Uint8Array(e.target.result)); resolve(new Uint8Array(e.target.result));
}); });
reader.addEventListener('error', reject); reader.addEventListener('error', reject);
reader.addEventListener('abort', reject); reader.addEventListener('abort', reject);
} }
}); });
}
}; };
return { return {