0
votes

Comment attendre que les données arrivent avec promesse?

J'ai 3 fonctions: xxx

en fonction EstategetCatégoriesWithSubTypes Je veux obtenir un tableau de sous-types pour toutes les catégories. J'ai des problèmes avec des promesses. Maintenant, j'ai un tableau de [indéfini, non défini, indéfini]. Aidez-moi à me demander d'organiser correctement le code!


0 commentaires

3 Réponses :


0
votes

Essayez d'ajouter un retour ici:

const promises = categories.map(category => getCategorySubTypes(category.id))

Ou ignorez {} comme ceci:

const promises = categories.map(category => {
  return getCategorySubTypes(category.id)
})

Parce que maintenant, votre carte renvoie un tableau de undefined (vous n'y retournez pas de données).


0 commentaires

1
votes

Corrigez votre categories.map

Vous devez renvoyer quelque chose de la fonction passée à la méthode .map , comme ceci:

exports.estateGetCategoriesWithSubTypes = functions.https.onRequest(async (req, res) => {
  const categories = await getCategories()

  const promises = categories.map(category => {
    return getCategorySubTypes(category.id) // <--- HERE
  })

  const subTypes = await Promise.all(promises)
  console.log(subTypes)
  res.status(200).send(subTypes)
})

1 commentaires

Bien sûr, après 7 min :)



0
votes

Vous ne renvoyez rien de votre carte. donc, veuillez modifier comme:

const array1 = [1, 4, 9, 16];
const map1 = array1.map(element => {
  return element /2;
});
console.log(map1);

Comme ci-dessous:

const promises = categories.map(category => {
  return getCategorySubTypes(category.id)
})


0 commentaires