Merge branch 'fallback-fix'
Conflicts: src/core.js
This commit is contained in:
commit
cddb5ea0bb
15
src/core.js
15
src/core.js
@ -137,6 +137,10 @@ var Page = (function PageClosure() {
|
||||
var self = this;
|
||||
var promise = new Promise();
|
||||
|
||||
function reject(e) {
|
||||
promise.reject(e);
|
||||
}
|
||||
|
||||
var pageListPromise = new Promise();
|
||||
|
||||
var pdfManager = this.pdfManager;
|
||||
@ -150,7 +154,7 @@ var Page = (function PageClosure() {
|
||||
this.idCounters);
|
||||
|
||||
var dataPromises = Promise.all(
|
||||
[contentStreamPromise, resourcesPromise]);
|
||||
[contentStreamPromise, resourcesPromise], reject);
|
||||
dataPromises.then(function(data) {
|
||||
var contentStream = data[0];
|
||||
var resources = data[1];
|
||||
@ -161,7 +165,8 @@ var Page = (function PageClosure() {
|
||||
opListPromise.then(function(data) {
|
||||
pageListPromise.resolve(data);
|
||||
});
|
||||
}
|
||||
},
|
||||
reject
|
||||
);
|
||||
});
|
||||
|
||||
@ -195,9 +200,9 @@ var Page = (function PageClosure() {
|
||||
PartialEvaluator.optimizeQueue(pageQueue);
|
||||
|
||||
promise.resolve(pageData);
|
||||
});
|
||||
});
|
||||
});
|
||||
}, reject);
|
||||
}, reject);
|
||||
}, reject);
|
||||
|
||||
return promise;
|
||||
},
|
||||
|
25
src/util.js
25
src/util.js
@ -694,16 +694,26 @@ var Promise = PDFJS.Promise = (function PromiseClosure() {
|
||||
deferred.resolve(results);
|
||||
return deferred;
|
||||
}
|
||||
function reject(reason) {
|
||||
if (deferred.isRejected) {
|
||||
return;
|
||||
}
|
||||
results = [];
|
||||
deferred.reject(reason);
|
||||
}
|
||||
for (var i = 0, ii = promises.length; i < ii; ++i) {
|
||||
var promise = promises[i];
|
||||
promise.then((function(i) {
|
||||
return function(value) {
|
||||
if (deferred.isRejected) {
|
||||
return;
|
||||
}
|
||||
results[i] = value;
|
||||
unresolved--;
|
||||
if (unresolved === 0)
|
||||
deferred.resolve(results);
|
||||
};
|
||||
})(i));
|
||||
})(i), reject);
|
||||
}
|
||||
return deferred;
|
||||
};
|
||||
@ -784,12 +794,8 @@ var Promise = PDFJS.Promise = (function PromiseClosure() {
|
||||
},
|
||||
|
||||
then: function Promise_then(callback, errback, progressback) {
|
||||
if (!callback) {
|
||||
error('Requiring callback' + this.name);
|
||||
}
|
||||
|
||||
// If the promise is already resolved, call the callback directly.
|
||||
if (this.isResolved) {
|
||||
if (this.isResolved && callback) {
|
||||
var data = this.data;
|
||||
callback.call(null, data);
|
||||
} else if (this.isRejected && errback) {
|
||||
@ -797,9 +803,12 @@ var Promise = PDFJS.Promise = (function PromiseClosure() {
|
||||
var exception = this.exception;
|
||||
errback.call(null, error, exception);
|
||||
} else {
|
||||
this.callbacks.push(callback);
|
||||
if (errback)
|
||||
if (callback) {
|
||||
this.callbacks.push(callback);
|
||||
}
|
||||
if (errback) {
|
||||
this.errbacks.push(errback);
|
||||
}
|
||||
}
|
||||
|
||||
if (progressback)
|
||||
|
@ -137,7 +137,8 @@ var WorkerMessageHandler = {
|
||||
javaScript: results[6]
|
||||
};
|
||||
loadDocumentPromise.resolve(doc);
|
||||
});
|
||||
},
|
||||
parseFailure);
|
||||
};
|
||||
|
||||
var parseFailure = function parseFailure(e) {
|
||||
@ -261,7 +262,7 @@ var WorkerMessageHandler = {
|
||||
|
||||
var onSuccess = function(doc) {
|
||||
handler.send('GetDoc', { pdfInfo: doc });
|
||||
pdfManager.ensureModel('traversePages', []);
|
||||
pdfManager.ensureModel('traversePages', []).then(null, onFailure);
|
||||
};
|
||||
|
||||
var onFailure = function(e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user