diff --git a/src/client/web/src/client/index.ts b/src/client/web/src/client/index.ts index a918e6b..6f81a42 100644 --- a/src/client/web/src/client/index.ts +++ b/src/client/web/src/client/index.ts @@ -142,6 +142,7 @@ export class BaseClient { return new Promise((resolve: (ret: Response) => void) => { setTimeout(() => { if (!returned) { + returned = true; src.cancel("request timeout"); resolve(TimeoutResp); } @@ -149,13 +150,17 @@ export class BaseClient { axios({ ...config, cancelToken: src.token }) .then((resp) => { - returned = true; - resolve(resp); + if (!returned) { + returned = true; + resolve(resp); + } }) .catch((e) => { + returned = true; const errMsg = e.toString(); if (errMsg.includes("ERR_EMPTY")) { + // TODO: check if this is compatible with all browsers // this means connection is eliminated by server, it may be caused by timeout. resolve(EmptyBodyResp); } else if (e.response != null) { diff --git a/src/client/web/src/client/users_mock.ts b/src/client/web/src/client/users_mock.ts index 13d920a..e7071c6 100644 --- a/src/client/web/src/client/users_mock.ts +++ b/src/client/web/src/client/users_mock.ts @@ -40,7 +40,7 @@ export const resps = { role: "mock_role0", usedSpace: "128", quota: { - spaceLimit: 1024, + spaceLimit: "1024", uploadSpeedLimit: 1024, downloadSpeedLimit: 1024, }, @@ -52,7 +52,7 @@ export const resps = { role: "mock_role1", usedSpace: "256", quota: { - spaceLimit: 1024, + spaceLimit: "1024", uploadSpeedLimit: 1024, downloadSpeedLimit: 1024, },