簡體   English   中英

在promise函數中使用api調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM