Browse Source

Merge pull request #5140 from yurydelendik/fetchAsync

Removes some bind() calls from fetchAsync
Jonas Jenwald 11 years ago
parent
commit
179bb2e136
  1. 33
      src/core/obj.js

33
src/core/obj.js

@ -583,7 +583,7 @@ var Catalog = (function CatalogClosure() {
} }
nodesToVisit.push(obj); nodesToVisit.push(obj);
next(); next();
}.bind(this), capability.reject.bind(capability)); }, capability.reject);
return; return;
} }
@ -1287,21 +1287,22 @@ var XRef = (function XRefClosure() {
}, },
fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) { fetchAsync: function XRef_fetchAsync(ref, suppressEncryption) {
return new Promise(function (resolve, reject) { var streamManager = this.stream.manager;
var tryFetch = function () { var xref = this;
try { return new Promise(function tryFetch(resolve, reject) {
resolve(this.fetch(ref, suppressEncryption)); try {
} catch (e) { resolve(xref.fetch(ref, suppressEncryption));
if (e instanceof MissingDataException) { } catch (e) {
this.stream.manager.requestRange(e.begin, e.end, tryFetch); if (e instanceof MissingDataException) {
return; streamManager.requestRange(e.begin, e.end, function () {
} tryFetch(resolve, reject);
reject(e); });
} return;
}.bind(this); }
tryFetch(); reject(e);
}.bind(this)); }
}, });
},
getCatalogObj: function XRef_getCatalogObj() { getCatalogObj: function XRef_getCatalogObj() {
return this.root; return this.root;

Loading…
Cancel
Save