fix: 如果先前的分片已经被取消,则后续就不需要上传了(整个任务实际被取消)
This commit is contained in:
parent
df9855906d
commit
2871934bcd
|
|
@ -90,7 +90,12 @@ export async function chunkUpload(options) {
|
|||
// 使用并发控制执行上传
|
||||
const executing = new Set();
|
||||
const errors = [];
|
||||
let shouldAbort = false; // 中止标志
|
||||
for (const task of uploadTasks) {
|
||||
// 如果已经需要中止,跳过未开始的任务
|
||||
if (shouldAbort) {
|
||||
break;
|
||||
}
|
||||
let promise;
|
||||
promise = (async () => {
|
||||
try {
|
||||
|
|
@ -98,8 +103,9 @@ export async function chunkUpload(options) {
|
|||
}
|
||||
catch (err) {
|
||||
if (isAbortError(err)) {
|
||||
// 用户主动中止上传,抛到上层再处理
|
||||
// 用户主动中止上传,设置中止标志,阻止后续任务开始
|
||||
console.log(`分片 ${task.part.partNumber} 上传被用户中止`);
|
||||
shouldAbort = true;
|
||||
}
|
||||
errors.push(err);
|
||||
throw err;
|
||||
|
|
|
|||
|
|
@ -94,7 +94,12 @@ async function chunkUpload(options) {
|
|||
// 使用并发控制执行上传
|
||||
const executing = new Set();
|
||||
const errors = [];
|
||||
let shouldAbort = false; // 中止标志
|
||||
for (const task of uploadTasks) {
|
||||
// 如果已经需要中止,跳过未开始的任务
|
||||
if (shouldAbort) {
|
||||
break;
|
||||
}
|
||||
let promise;
|
||||
promise = (async () => {
|
||||
try {
|
||||
|
|
@ -102,8 +107,9 @@ async function chunkUpload(options) {
|
|||
}
|
||||
catch (err) {
|
||||
if (isAbortError(err)) {
|
||||
// 用户主动中止上传,抛到上层再处理
|
||||
// 用户主动中止上传,设置中止标志,阻止后续任务开始
|
||||
console.log(`分片 ${task.part.partNumber} 上传被用户中止`);
|
||||
shouldAbort = true;
|
||||
}
|
||||
errors.push(err);
|
||||
throw err;
|
||||
|
|
|
|||
|
|
@ -123,16 +123,23 @@ export async function chunkUpload(
|
|||
// 使用并发控制执行上传
|
||||
const executing: Set<Promise<void>> = new Set();
|
||||
const errors: Error[] = [];
|
||||
let shouldAbort = false; // 中止标志
|
||||
|
||||
for (const task of uploadTasks) {
|
||||
// 如果已经需要中止,跳过未开始的任务
|
||||
if (shouldAbort) {
|
||||
break;
|
||||
}
|
||||
|
||||
let promise;
|
||||
promise = (async () => {
|
||||
try {
|
||||
await uploadPart(task.part, task.chunk);
|
||||
} catch (err) {
|
||||
if (isAbortError(err)) {
|
||||
// 用户主动中止上传,抛到上层再处理
|
||||
// 用户主动中止上传,设置中止标志,阻止后续任务开始
|
||||
console.log(`分片 ${task.part.partNumber} 上传被用户中止`);
|
||||
shouldAbort = true;
|
||||
}
|
||||
errors.push(err as Error);
|
||||
throw err;
|
||||
|
|
|
|||
Loading…
Reference in New Issue