!2360 功能:请求配置时,如果存在网络问题,会自动重试(最大次数50)(避免初始化排钻信息)

pull/2306/MERGE
ChenX 1 year ago
parent cbd7942b8a
commit a11d62dfba

@ -1,5 +1,5 @@
import { Intent } from "@blueprintjs/core";
import { ShowLinesToaster } from "../UI/Components/Toaster";
import { AppToaster, ShowLinesToaster } from "../UI/Components/Toaster";
import { TopPanelStore } from "../UI/Store/TopPanelStore";
import { userConfigStore } from "../UI/Store/UserConfigStore";
import { BuyCadUrl, ImgsUrl } from "./HostUrl";
@ -42,9 +42,38 @@ export interface IResponseData
[key: string]: any;
}
export async function PostJson<T = object>(url: string, body: Exclude<T, BodyInit>, isShowErrMsg = true)
export async function PostJson<T = object>(
url: string, body: Exclude<T, BodyInit>,
isShowErrMsg = true,
retryOption?: {
retry: boolean,
msg: string;
})
{
return await Post(url, JSON.stringify(body), isShowErrMsg);
let retryCount = 1;
while (true)
{
let res = await Post(url, JSON.stringify(body), isShowErrMsg);
if (retryOption?.retry && retryCount < 50 && res.err_code === RequestStatus.None)
{
AppToaster.show({
message: (retryOption.msg ?? "") + " 重试次数:" + retryCount,
timeout: 0,
intent: Intent.WARNING,
}, "error_fetch");
retryCount++;
continue;
}
else
{
if (retryOption?.retry)
AppToaster.dismiss("error_fetch");
return res;
}
}
}
export async function Post(url: string, body?: BodyInit, isShowErrMsg = true): Promise<IResponseData>
@ -101,7 +130,7 @@ export async function Post(url: string, body?: BodyInit, isShowErrMsg = true): P
catch (error)
{
// ReportError(`请求url错误:${url}`);
return { err_code: RequestStatus.None, err_msg: "请求错误" };
return { err_code: RequestStatus.None, err_msg: `请求失败,地址:${url}` };
}
}

@ -312,7 +312,11 @@ export class UserConfigStore extends Singleton
let store = await IndexedDbStore.CADStore();
let version = await store.Get(StoreName.ConfigVersion, GetIndexDBID(key));
let data = await PostJson(ConfigUrls.Get, { key, version }, false);
let data = await PostJson(ConfigUrls.Get, { key, version }, false,
{
retry: true,
msg: "无法获取配置,正在重新获取,请检查网络连接!"
});
if (data.err_code === RequestStatus.Ok && data.value && data.value !== "{}")
{
if (data.value === "CACHE")
@ -394,7 +398,7 @@ export class UserConfigStore extends Singleton
await configListMapStore.AddConfig(type, [configName], store);
}
let data = await PostJson(ConfigUrls.Edit, { key: type, value: JSON.stringify(configs) });
let data = await PostJson(ConfigUrls.Edit, { key: type, isInit, value: JSON.stringify(configs) });
if (data.err_code === RequestStatus.Ok)
{
@ -599,7 +603,11 @@ export class UserConfigStore extends Singleton
let version = await store.Get(StoreName.ConfigVersion, GetIndexDBID(key));
query.push({ key, version });
}
let data = await PostJson(ConfigUrls.GetList, query, false);
let data = await PostJson(ConfigUrls.GetList, query, false,
{
retry: true,
msg: "无法获取配置,正在重新获取,请检查网络连接!"
});
if (data.err_code === RequestStatus.Ok)
{

Loading…
Cancel
Save