搜尋

首頁  >  問答  >  主體

如何正確取得 fetch 的狀態?

我在我的 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粉124070451P粉124070451471 天前584

全部回覆(1)我來回復

  • P粉509383150

    P粉5093831502023-09-09 09:45:31

    如果您希望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;
    }

    回覆
    0
  • 取消回覆