Я передаю тело в полезной нагрузке методу POST, которые являются выбранными фильтрами. Можно ли сейчас отправить любую категорию массива, если она пуста? - PullRequest
0 голосов
/ 22 марта 2019

Итак, это то, что я передаю:

coCodes:[]
formTypes:["940R", "940"]
quarters:["1", "2", "3", "4"]
years:["2019", "2018"]

, так что коды coCodes пусты.Есть ли способ просто передать остальные 3 заполненных массива, только если массив пуст?Или это может быть 2 или 1?

Вот мой метод POST:

export function POSTFilter(url: string, payload): Promise<any> {
  return new Promise((resolve, reject) => {
    try {

      fetch(url, { headers: {'Content-Type': 'application/json'}, credentials: 'same-origin', method: 'post', body: JSON.stringify(payload) })
      .then((response) => {
        if (response.ok) {
          response
            .json()
            .then((json) => {

              const allTypesList = json.data;
              resolve(allTypesList);
            });
        } else {
          response.json().then((jsonError) => {
            const errors = jsonError && jsonError.exceptionMessages ? jsonError.exceptionMessages : [];
            const infos = jsonError && jsonError.info ? jsonError.info : [];
            reject([...errors, ...infos]);
          }).catch(() => reject(undefined));
        }
      })
      .catch(() => reject(`Could not fetch ${url}`));
    } catch (ex) {
      reject(`Unexpected error for ${url}`);
    }
  });
}

1 Ответ

0 голосов
/ 22 марта 2019

Вы можете сделать что-то вроде этого. Допустим, у вас есть переменные coCodes, formTypes, quarters и years с некоторым значением. Вы можете просто проверить длину и присвоить свойство объекту payload, только если его длина больше 0.

Так, например, в строке coCodes.length > 0 && (payload.coCodes = coCodes)
payload.coCodes = coCodes будет выполняться, только если coCodes.length > 0 истинно

const coCodes = []
const formTypes = ["940R", "940"]
const quarters = ["1", "2", "3", "4"]
const years = ["2019", "2018"]
const payload = {}

coCodes.length > 0 && (payload.coCodes = coCodes)
formTypes.length > 0 && (payload.formTypes = formTypes)
quarters.length > 0 && (payload.quarters = quarters)
years.length > 0 && (payload.years = years)

console.log(payload)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...