gpt4 book ai didi

javascript - 获取结果返回状态码和 json 数据

转载 作者:行者123 更新时间:2023-11-30 19:20:50 24 4
gpt4 key购买 nike

我有一个调用 API 后端的获取 API 调用,作为返回,我将获得带有状态代码的响应对象。我想做的是基于返回,我想返回带有状态代码的 JSON 响应。这样 javascript 的其他部分就可以根据状态代码进行操作。我的 fetch 函数如下。

我试过如下所示,但它作为给定的屏幕截图返回。它给了我我不想得到的 promise 值(value)。 enter image description here

export const createUser = ( posts ) => {
const apiRoute= "/api/register";
return window.fetch(`${apiRoute}`, {
"headers": headers,
method: "POST",
body: JSON.stringify(posts)
}).then(response => ({
'status' : response.status,
'data' : response.json()
}))
.catch(error => console.error('Error: ', error))
;

}

我知道它可能与这篇文章 (Fetch api - getting json body in both then and catch blocks for separate status codes) 重复,但我不希望我的数据作为 promise 返回。相反,我想返回完全构造良好的 JSON 数据。

像这样。

{status: 400, data: {id:1,name:Hello World}}

我怎样才能做到这一点?

最佳答案

"It gives me promise value"

没错,根据 documentation .

您需要先解决该 promise ,然后再解决外部 promise 。

例如

.then(response => {
return response.json().then(data => ({
status: response.status,
data
}))
})

或者,使用async 函数

export const createUser = async ( posts ) => {
const apiRoute= "/api/register";
try {
const response = await window.fetch(apiRoute, {
headers,
method: "POST",
body: JSON.stringify(posts)
})
return {
status: response.status,
data: await response.json()
}
} catch (error) {
console.error('Error: ', error)
throw error
}
}

关于javascript - 获取结果返回状态码和 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57504633/

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