Как мне перебрать массив объектов JavaScript, чтобы выполнить асинхронный вызов базы данных для каждого объекта?Javascript

Форум по Javascript
Ответить
Anonymous
 Как мне перебрать массив объектов JavaScript, чтобы выполнить асинхронный вызов базы данных для каждого объекта?

Сообщение Anonymous »

Я пытаюсь получить данные тегов для каждой записи блога, которую извлекаю из базы данных. Для этого мне нужно сначала выполнить асинхронный вызов базы данных, чтобы получить данные сообщений блога, которые содержат идентификаторы тегов, связанных с сообщениями соответственно. Затем мне нужно перебрать этот массив сообщений и выполнить второй асинхронный вызов базы данных, чтобы получить объекты тегов, связанные с соответствующими идентификаторами тегов для каждого сообщения.
Это мой код:

Код: Выделить всё

    const result: DB_PostModel[] = await queryDatabase({ query, values });
const posts = result.map(async (post) => ({
...post,
tags: await getTags(post.tags),
}))
Первый вызов работает отлично. Однако конечным результатом является массив неразрешенных промисов.
Объект Posts выглядит следующим образом после операции .map():

Код: Выделить всё

const posts: Promise[]
Я не могу разрешить этот массив объектов сообщений. Я даже не знаю, выполнит ли getPosts() успешный вызов, потому что я не могу ничего делать с сообщениями, поскольку не могу разрешить промисы.
Как мне разрешить промисы?

Подробнее здесь: https://stackoverflow.com/questions/798 ... asynchrono
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»