我使用 Amplify API 呼叫 API:
import { API } from 'aws-amplify'
await API.get('myapi', 'endpoint')
.then(data => {
// Do something here
})
當我的 API 回傳 200 并回傳一些資料時,then主體已成功執行。問題是,當端點回傳 404(或更好的非 200 回應)時,似乎await API.get ....沒有回傳,因此then主體永遠不會執行。我可以在開發人員工具和 Network 選項卡中看到該呼叫確實回傳了 404 錯誤,只是在 React 中它永遠不會觸發then正文。
這是 API 回傳的內容:
return {
'statusCode': 404,
'headers': {
'Content-Type': 'application/json',
'Access-Control-Allow-Headers' : 'Content-Type',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET'
}
}
uj5u.com熱心網友回復:
.then() 在您的請求成功時觸發,.catch() 在請求被拒絕時觸發。從“aws-amplify”匯入 { API }
await API.get('myapi', 'endpoint')
.then(data => {
// Do something here
})
.catch((err) => {
console.log(err);
});
另外,我不認為將 await 與 .then() 一起使用是一個好習慣。.then().catch() 和 async/await 是處理異步執行的兩種流行方式。它們不應相互混合。參考鏈接:https ://www.geeksforgeeks.org/difference-between-promise-and-async-await-in-node-js/?ref=lbp
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/484454.html
標籤:反应 休息 aws-放大-cli
