axios 멀티 리퀘스트 보내기

less than 1 minute read

axios에는 HTTP request 여러 개를 한번에 묶어 던지는 기능이 있다. 이 기능을 사용하여 기껏 개발해놨는데, 기능 변경으로 인해 코드를 지워야 한다. 잊기 전에 박제해두자.

import axios from 'axios'

// get 요청 보내는 함수1
const login = (uid, password) => {
    return axios.get('HTTP endpoint you want to use like ./login.aspx', {
        params: {
            'uid': uid,
            'password': password
        }
    })
}

// get 요청 보내는 함수2
const isFinished = uid => {
    return axios.get('HTTP endpoint you want to use like ./finish.aspx', {
        params: {
            'uid': uid
        }
    })
}

// 결과 검증하는 함수
const isPossible = (len, cnt) => {
    // ...
}

// 결과값으로 뭔가 작업 하는 함수
const doSomething = ({name, birth}) => {
    // ...
}

// multiple requests 보내기
axios.all([login(uid, password), isFinished(uid)]) // axios.all로 여러 개의 request를 보내고
    .then(axios.spread((loginResp, isFinishedResp) => { // response를 spread로 받는다
        if (!isPossible(loginResp.data.length, isFinishedResp.data.CNT)) return false
        doSomething({
            name: loginResp.data.name,
            birth: loginResp.data.birth
        })
    })).catch((error) => {
        console.error(error)
    })

Tags:

Categories:

Updated:

Leave a Comment