Fix handling of fetch errors
Testing: - delete the pdf file while the initial request is inflight - delete the pdf file after the initial request has finished Repeat for a small file and large file, exercising both one-off and chunked transports.
This commit is contained in:
parent
ada283cc35
commit
291ffd3059
@ -290,7 +290,7 @@ class ChunkedStreamManager {
|
||||
|
||||
let chunks = [],
|
||||
loaded = 0;
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const readChunk = chunk => {
|
||||
try {
|
||||
if (!chunk.done) {
|
||||
@ -311,14 +311,12 @@ class ChunkedStreamManager {
|
||||
}
|
||||
};
|
||||
rangeReader.read().then(readChunk, reject);
|
||||
});
|
||||
promise.then(data => {
|
||||
}).then(data => {
|
||||
if (this.aborted) {
|
||||
return; // Ignoring any data after abort.
|
||||
}
|
||||
this.onReceiveData({ chunk: data, begin });
|
||||
});
|
||||
// TODO check errors
|
||||
}
|
||||
|
||||
/**
|
||||
@ -369,7 +367,7 @@ class ChunkedStreamManager {
|
||||
groupedChunk.endChunk * this.chunkSize,
|
||||
this.length
|
||||
);
|
||||
this.sendRequest(begin, end);
|
||||
this.sendRequest(begin, end).catch(capability.reject);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -247,12 +247,7 @@ class PDFFetchStreamRangeReader {
|
||||
this._readCapability.resolve();
|
||||
this._reader = response.body.getReader();
|
||||
})
|
||||
.catch(reason => {
|
||||
if (reason?.name === "AbortError") {
|
||||
return;
|
||||
}
|
||||
throw reason;
|
||||
});
|
||||
.catch(this._readCapability.reject);
|
||||
|
||||
this.onProgress = null;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user