@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))

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

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

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

Войти через центр авторизации
Похожие вопросы