Задать вопрос
@mi1ord

Как лучше собрать и получить данные для ajax запроса из массива объектов?

Всем привет!

В общем, у меня есть массив сообщений конкретного диалога. В этом диалоге может учавствовать более, чем 2 юзера. Дело в том, что в сообщениях предоставлены только айдишники юзеров.
Нужно получить их имена и тп.

Я итерируюсь по этому массиву для того, чтобы выдирать сообщения и уникальные id юзеров.
const messagesHtml = ''
const userIds = []
for (let msg of messages) {
  messagesHtml += createMessageTemplate(msg.message)
  const { user_id } = msg.message
  !userIds.includes(user_id) && userIds.push(user_id)
}

После этого собранные сообщения вставляются в DOM, а имена юзеров я собираю с помощью Promise.all()
Promise.all(userIds.map(id => fetchUser(id)))
  .then(response => fillUsersNames(response))

Пока имена забираются с сервера, на их местах торчат плейсхолдеры.

Вопрос - насколько это оптимальное решение вот так собирать юзеров и есть ли тут что улучшить?
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@vuldozer
Если я верно понял, то ты обходишь ДОМ 2 раза? Один раз вставляешь сообщения, второй раз вставляешь имена юзеров?
Я бы ждал пока все соберется, а потом один раз обошел. Разницы нет показывается ли сообщение от неизвестного юзера лишнюю секунду или нет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы