forked from XiaoMo/ChatGPT-Next-Web
Merge pull request #1015 from yunwuu/main
fix typo & add timeout to stuck request
This commit is contained in:
commit
2efba6ea6f
@ -10,10 +10,20 @@ const RAW_EN_URL = "f/awesome-chatgpt-prompts/main/prompts.csv";
|
|||||||
const EN_URL = MIRRORF_FILE_URL + RAW_EN_URL;
|
const EN_URL = MIRRORF_FILE_URL + RAW_EN_URL;
|
||||||
const FILE = "./public/prompts.json";
|
const FILE = "./public/prompts.json";
|
||||||
|
|
||||||
|
const timeoutPromise = (timeout) => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
reject(new Error('Request timeout'));
|
||||||
|
}, timeout);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
async function fetchCN() {
|
async function fetchCN() {
|
||||||
console.log("[Fetch] fetching cn prompts...");
|
console.log("[Fetch] fetching cn prompts...");
|
||||||
try {
|
try {
|
||||||
const raw = await (await fetch(CN_URL)).json();
|
// const raw = await (await fetch(CN_URL)).json();
|
||||||
|
const response = await Promise.race([fetch(CN_URL), timeoutPromise(5000)]);
|
||||||
|
const raw = await response.json();
|
||||||
return raw.map((v) => [v.act, v.prompt]);
|
return raw.map((v) => [v.act, v.prompt]);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("[Fetch] failed to fetch cn prompts", error);
|
console.error("[Fetch] failed to fetch cn prompts", error);
|
||||||
@ -24,13 +34,15 @@ async function fetchCN() {
|
|||||||
async function fetchEN() {
|
async function fetchEN() {
|
||||||
console.log("[Fetch] fetching en prompts...");
|
console.log("[Fetch] fetching en prompts...");
|
||||||
try {
|
try {
|
||||||
const raw = await (await fetch(EN_URL)).text();
|
// const raw = await (await fetch(EN_URL)).text();
|
||||||
|
const response = await Promise.race([fetch(EN_URL), timeoutPromise(5000)]);
|
||||||
|
const raw = response.text();
|
||||||
return raw
|
return raw
|
||||||
.split("\n")
|
.split("\n")
|
||||||
.slice(1)
|
.slice(1)
|
||||||
.map((v) => v.split('","').map((v) => v.replace('"', "")));
|
.map((v) => v.split('","').map((v) => v.replace('"', "")));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("[Fetch] failed to fetch cn prompts", error);
|
console.error("[Fetch] failed to fetch en prompts", error);
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user