web-dev-qa-db-fra.com

Axios-Faire plusieurs requêtes à la fois (vue.js)

Comment faire plusieurs requêtes en parallèle en utilisant axios et vue?

7
Ready Dev

Comme axios peut être utilisé par React et Vue il correspond assez bien au même code).

Assurez-vous de lire axios docs , vous pouvez le comprendre à partir de là.

Quoi qu'il en soit, je vais vous montrer un exemple:

<template>
  <div>
   <button @click="make_requests_handler">Make multiple request</button>
   {{message}} - {{first_request}} - {{second_request}}
  </div>
</template>

Et le script:

import axios from 'axios'

export default {
  data: () => ({
    message: 'no message',
    first_request: 'no request',
    second_request: 'no request'
  }),
  methods: {
    make_requests_handler() {
      this.message = 'Requests in progress'

      axios.all([
        this.request_1(), //or direct the axios request
        this.request_2()
      ])
    .then(axios.spread((first_response, second_response) => {
          this.message = 'Request finished'
          this.first_request = 'The response of first request is' + first_response.data.message
          this.second_request = 'The response of second request is' + second_response.data.message
        }))
    },
    request_1() {
     this.first_request: 'first request began'
     return axios.get('you_URL_here')
    },
    request_2() {
      this.second_request: 'second request began'
      return axios.get('another_URL', { params: 'example' })
    }
  }
}
15
roli roli