gpt4 book ai didi

javascript - Fetch 不会返回任何结果

转载 作者:行者123 更新时间:2023-12-04 13:29:58 25 4
gpt4 key购买 nike

我没用过fetch之前,并遵循了文档,但是,我的后端没有返回任何结果。当我提交表单时,url 发生变化,并且在我的控制台中一切正常,但我的快速后端没有响应。
以下代码是我在脚本标签中的表单之后的代码。有人可以建议吗?

async function getSample(url = `http://localhost:3000/lookup/${url}`, data = {}) {
const response = await fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
return response.json();
}


document.getElementById('search').addEventListener('submit', function(e) {
event.respondWith(
new Response(myBody, {
headers: {'Content-Type': 'application/json'}
})
);
});

最佳答案

您可以尝试创建一个 promise ,然后使用 resolve 和 reject 处理由 fetch 返回的值

async function getSample(url = `http://localhost:3000/lookup/${url}`, data = {}){

return new Promise(function (resolve, reject) {
fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}).then(async response => {
if (response.ok) {
response.json().then(json => resolve(json));
} else {
response.json().then(json => reject(json));
};
}).catch(async error => {
reject(error);
});
});

};
然后你会称它为
getSample(...)
.then(results => {
//Code when fetch is successful
}.catch(error => {
//Code when fetch fails
};
我认为它不返回任何内容的问题在于 getSample是一个异步函数,但我想你是在一个非异步的程序中调用它,所以在 getSample 之后出现的任何代码正在尝试使用从 getSample 返回的值,但尚未返回任何内容,因此它使用的是空值。在获取完成之前,要么是那个,要么是 getSample 的返回。我不确定事情发生的确切顺序,但 promise 应该可以解决您的问题

关于javascript - Fetch 不会返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65659706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com