Ich versuche, Tag-Daten für jeden Blog-Beitrag abzurufen, den ich aus der Datenbank abrufe. Dazu muss ich zunächst einen asynchronen Aufruf an die Datenbank durchführen, um die Blog-Post-Daten abzurufen, die die IDs der Tags enthalten, die jeweils mit den Posts verknüpft sind. Dann muss ich dieses Array von Beiträgen durchlaufen und einen zweiten asynchronen Aufruf an die Datenbank durchführen, um die Tag-Objekte abzurufen, die den jeweiligen Tag-IDs für jeden Beitrag zugeordnet sind.
Das ist mein Code:
Code: Select all
const result: DB_PostModel[] = await queryDatabase({ query, values });
const posts = result.map(async (post) => ({
...post,
tags: await getTags(post.tags),
}))
Der erste Aufruf funktioniert einwandfrei. Das Endergebnis ist jedoch ein Array ungelöster Promises.
Das posts-Objekt sieht nach der .map()-Operation folgendermaßen aus:
Ich kann dieses Array von Post-Objekten nicht auflösen. Ich weiß nicht einmal, ob getPosts() einen erfolgreichen Aufruf durchführt, da ich mit Posts nichts anfangen kann, da ich die Promises
nicht auflösen kann.
Wie löse ich die Promises auf?