Массив объектов, отображаемый еще до завершения определенных функций массива - PullRequest
0 голосов
/ 17 июня 2020

Как сказано в заголовке, у меня есть ряд изменений массива, таких как pushing, reducing и mapping.

Для начала ... У меня есть 2 JSON с именем assignee_list и ticket_list. и по какой-то причине, когда условие выполняется, мне нужно объединить эти 2 объекта в один.

После получения ticket_list из запроса api. Затем будет вызвана функция _ticketList(). Это будет выглядеть так.

list_array: [] //global variable
  _ticketList() {
        var temp = [];
        var x = 0;
        this.assignee_list.forEach(user => {
           this.ticket_list.forEach(tix => {
               if (user.id == tix.technician_id) { //this is the condition
                   temp.push({
                       technician_id: user.id,
                       name: user.name,
                       data: tix,
                   })
               }
            });
            x++;
    });

    if (x == this.assignee_list.length) {
        var result = Object.values(temp.reduce((r, {technician_id, name, data}) => {
            if (r[technician_id]) {
                r[technician_id].data.push(data);
                r[technician_id].name = name;
                r[technician_id].technician_id = technician_id;
            } else {
                r[technician_id] = { technician_id, name, data: [data]};
            }
        }, {}))
        const resultArray = Object.keys(result).map(i => result[i]);
        this.list_array = resultArray.reverse();
    }
}

Когда я визуализирую list_array во внешнем интерфейсе, он работает. Однако он был отрисован еще до того, как была произведена серия изменений массива. В результате мне приходится ждать минимум 10 секунд, чтобы отобразить все элементы, в худшем случае: иногда он вообще ничего не отображает, и ему нужно обновить sh страницу, чтобы снова отобразить элементы.

Есть ли какие-либо альтернативы на пути достижения list_array без использования нескольких функций изменения массива? Есть идеи, как сделать его максимально оптимизированным?

Извините за плохой английский sh:))

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