[英]Using api calls in promise function
我沒有完全理解諾言如何運作。 我做了一個函數,該函數執行使用promise的api調用。
function getSomeData(email, password) {
axios.post('SomeURL/login', {
email: email,
password: password
})
}
每當此函數觸發時,我都可以獲得所需的數據。 但每當發生錯誤,錯誤將在中顯示出來.then()
調用甚則.catch()
getSomeData().then(data => {
console.log(data)
})
我怎樣才能確保,當我打電話.catch()
就會有顯示我的錯誤,而不是在.then()
您需要像這樣返回承諾:
function getSomeData(email, password) {
return axios.post('SomeURL/login', {
email: email,
password: password
})
}
然后它應該可以工作(如果axios.post
調用返回promise)。
您可以使用if語句來處理業務邏輯錯誤。 然后catch錯誤將處理服務器錯誤。
function getSomeData(email, password) {
return axios.post('SomeURL/login', {
email: email,
password: password
})
.then(response => {
if (response.statusText === 'OK') {
// LOGIN SUCCESS
// Do something with the login result
} else {
// LOGIN FAILURE, but not server failure
// Redirect to login page, and give a message
}
})
.catch(error => {
console.log(error)
// API is down
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.