Как мне использовать .then и .catch в вызове axios в приложении Vue JavaScript? - PullRequest
0 голосов
/ 15 января 2019

Я вызываю этот код на смонтированном в приложении Vue

mounted() {
this.isMounted = true;

axios.get('https://randomuser.me/api/').then((response) => {
  console.log("Response is" + response)

}).catch(function(error) {
  // handle error
  console.log("Error is: " + error);
})

}

И всегда появляется одна и та же ошибка: Ошибка: запрос не выполнен с кодом состояния 404

Я протестировал API и работает отлично, всегда отвечаю с 200. Я не знаю, что я делаю не так

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Я нашел ошибку. Я активировал макетный адаптер, поэтому каждый вызов обрабатывался этим макетным адаптером.

var mock = new MockAdapter(axios);

Таким образом, каждый вызов завершается неудачей, если его нет в списке mockCalls. Есть ли способ иметь MockAdapter только для некоторых конкретных вызовов? Например, вам нужно использовать два разных API, и вы хотите использовать только один из них

0 голосов
/ 15 января 2019

Попробуйте этот код.

mounted () {
    this.isMounted = true;
    axios
      .get('https://api.coindesk.com/v1/bpi/currentprice.json')
      .then(response => {
        console.log("Response is" + response)
      })
      .catch(error => {
        console.log(error)

      })
  }

или

    mounted () {  
    axios.get('https://api.coindesk.com/v1/bpi/currentprice.json')
              .then(function (response) {
               console.log("Response is" + response)
              }.bind(this))
              .catch(error => {
                console.log(error)
              })
  }
...