如何正确获取 fetch 的状态?
P粉124070451
P粉124070451 2023-09-08 18:25:24
0
1
565

我在我的 api 中执行提取,它返回 201 状态,但是当我尝试在变量中接收它时,状态变得很奇怪。

useEffect(() => {
async function Verify (test) {
 await fetch("/api/test", {
  method: "POST", 
  headers: {
   'Content-Type': 'application/json',
  },
  body: JSON.stringify({test: test}),
 }).then((response) => {
  res = response.status; 
  console.log(res); //thats print '201'
  return res;
 });
}
const status = Verify(test);
console.log(status); //thats print 'Promise { <state>: "fulfilled", <value>: 201 }'

}

P粉124070451
P粉124070451

全部回复(1)
P粉509383150

如果您希望status等于Verify的结果,您需要await它。

const status = await Verify(test);

此外,我建议重构您的代码以在各处使用 await 来简化流程。尝试这样的事情:

async function Verify (test) {
  const res = await fetch('/api/test', {
    method: 'POST', 
    headers: {
     'Content-Type': 'application/json',
    },
    body: JSON.stringify( { test } ),
  });
  
  if (!res.ok) {
    throw new Error('Not-ok response from server');
  }

  return res;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板