在vue上处理axios.get响应

时间:2019-12-28 15:33:52

标签: vue.js axios

我正在关注Vue教程,并且不确定如何在不使用axios.get的情况下处理then的情况下await

<script>
// @ is an alias to /src
import axios from 'axios';

export default {
  name: 'home',
  components: {

  },
  data(){
    return {
      fecha: '',
      maximo: new Date().toISOString().substr(0, 10),
      minimo: '1984',
      resultado: null
    }
  },
  methods:{
    async getDolar(dia){
      console.log(`https://mindicador.cl/api/dolar/${dia}`);
      let resultado = await axios.get(`https://mindicador.cl/api/dolar/${dia}`);

      return resultado;
    }
  },
  created(){
      let hoy = new Date().toISOString().substr(0, 10).split('-').reverse().join('-');
      this.resultado = this.getDolar(hoy);
      console.log(this.resultado)//it's a promise
    }
}
</script>

在没有then的情况下也可以得到json响应吗?

2 个答案:

答案 0 :(得分:1)

等等,对于任何承诺,您都可以使用await来获取其价值:

async created() {
  let hoy = new Date().toISOString().substr(0, 10).split('-').reverse().join('-');
  this.resultado = await this.getDolar(hoy);
  console.log(this.resultado.data)
}

答案 1 :(得分:0)

是的,await也可以这样做。但是,异步/等待是ECMAScript 2017的一部分,并且Internet Explorer和较旧的浏览器不支持async / await,因此您必须谨慎使用ECMAScript 2017的浏览器可用性。

// Want to use async/await? Add the `async` keyword to your outer function/method.
async function getUser() {
  try {
    const response = await axios.get('/user?ID=12345');
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}