Javascript - использование различных частей связанных функций по условиям - PullRequest
0 голосов
/ 03 мая 2018

обычно в Javascript, скажем, я получил этот код:

return (dispatch) => {
    return axios.post(`${ROOT_URL}/company`, data).then(companyResponse => {

    }).catch(error => {
        throw (error);
    });
};

Теперь в некоторых случаях я хочу вызвать метод "post" с некоторыми параметрами (как написано выше), а в других случаях я бы хотел использовать "put" с другими параметрами. Примерно так:

// Pseudo code
if(some condition){
    // use this: axios.put(`${ROOT_URL}/company`, data, config)
}
    // use this: axios.post(`${ROOT_URL}/company`, data)
}

Какая лучшая практика для этого?

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Вы также можете использовать объект конфигурации axios, чтобы указать метод:

const method = condition ? 'put' : 'post' // ternary operator
axios({ method, url: `${ROOT_URL}/company`, data })
  .then(...)
  .catch(...)
0 голосов
/ 03 мая 2018

Примерно так

Да, именно так. Помните, что обещания - это просто значения, вы можете передавать их и сохранять в переменных или делать их результатом выражений.

return (dispatch) => {
    var promise;
    if (some condition)
        promise = axios.put(`${ROOT_URL}/company`, data, config);
    else
        promise = axios.post(`${ROOT_URL}/company`, data)
    return promise.then(companyResponse => {
        …
    });
}

Или используйте условный оператор:

return (dispatch) => {
    return (some condition
      ? axios.put(`${ROOT_URL}/company`, data, config);
      : axios.post(`${ROOT_URL}/company`, data)
    ).then(companyResponse => {
        …
    });
}
0 голосов
/ 03 мая 2018

Вы можете использовать скобочную нотацию с троичным оператором для использования post или put в зависимости от условия. Вы также можете использовать троичный оператор, чтобы передать конфигурацию, если выполняется условие, и в противном случае передать пустой объект как конфигурацию.

axios[condition ? 'put' : 'post'](`${ROOT_URL}/company`, data, condition ? config : {})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...