Skip to content

Commit b14700a

Browse files
committed
Fix already cancellable tasks wrapped in makeCancellable
1 parent 4962d3b commit b14700a

File tree

3 files changed

+11
-13
lines changed

3 files changed

+11
-13
lines changed

src/Document.jsx

+5-6
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,14 @@ export default class Document extends PureComponent {
115115

116116
const { options, onLoadProgress, onPassword } = this.props;
117117

118-
this.loadingTask = pdfjs.getDocument({ ...source, ...options });
119-
this.loadingTask.onPassword = onPassword;
118+
const destroyable = pdfjs.getDocument({ ...source, ...options });
119+
destroyable.onPassword = onPassword;
120120
if (onLoadProgress) {
121-
this.loadingTask.onProgress = onLoadProgress;
121+
destroyable.onProgress = onLoadProgress;
122122
}
123-
const cancellable = makeCancellable(this.loadingTask.promise);
124-
this.runningTask = cancellable;
123+
this.loadingTask = destroyable;
125124

126-
cancellable.promise
125+
destroyable.promise
127126
.then((pdf) => {
128127
this.setState((prevState) => {
129128
if (prevState.pdf && prevState.pdf.fingerprint === pdf.fingerprint) {

src/Page/PageCanvas.jsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { createRef, PureComponent } from 'react';
22
import PropTypes from 'prop-types';
3-
import makeCancellable from 'make-cancellable-promise';
43
import mergeRefs from 'merge-refs';
54
import warning from 'tiny-warning';
65
import * as pdfjs from 'pdfjs-dist/build/pdf';
@@ -121,9 +120,10 @@ export class PageCanvasInternal extends PureComponent {
121120
// If another render is in progress, let's cancel it
122121
this.cancelRenderingTask();
123122

124-
this.renderer = makeCancellable(page.render(renderContext).promise);
123+
const cancellable = page.render(renderContext);
124+
this.renderer = cancellable;
125125

126-
return this.renderer.promise.then(this.onRenderSuccess).catch(this.onRenderError);
126+
return cancellable.promise.then(this.onRenderSuccess).catch(this.onRenderError);
127127
};
128128

129129
render() {

src/Page/TextLayer.jsx

+3-4
Original file line numberDiff line numberDiff line change
@@ -126,16 +126,15 @@ export class TextLayerInternal extends PureComponent {
126126
// If another rendering is in progress, let's cancel it
127127
cancelRunningTask(this.runningTask);
128128

129+
this.layerElement.current.innerHTML = '';
130+
129131
const parameters = {
130132
container: this.layerElement.current,
131133
textContent,
132134
viewport,
133135
};
134136

135-
this.layerElement.current.innerHTML = '';
136-
137-
this.runningTask = pdfjs.renderTextLayer(parameters);
138-
const cancellable = makeCancellable(this.runningTask.promise);
137+
const cancellable = pdfjs.renderTextLayer(parameters);
139138
this.runningTask = cancellable;
140139

141140
cancellable.promise

0 commit comments

Comments
 (0)