Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

346
Vistas
Asignar variable dentro de .then en una función de mapa

Estoy tratando de asignar una variable dentro de una función .then pero no sé cómo hacerlo en la tienda svelte. Sé que es una promesa y toma algún tiempo para ser asignado.

Aquí está el código.

La función de mapa

 data.products.data = data?.products?.data?.map((item) => { let category = ''; customPIMListStore.getProductCategory(item.productCategoryId, token).then((data) => { category = data; console.log('category inside', category); }); return { ...item, category }; });

La otra función para obtener la categoría:

 getProductCategory: async (id, token) => { const res = await api.get(`backoffice/v1/category/${id}`, token); return res?.category?.name; },
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Tendrás que esperarlo

 data.products.data = await Promise.all(data?.products?.data?.map(async (item) => { const category = customPIMListStore.getProductCategory(item.productCategoryId, token) return { ...item, category }; }));
about 4 years ago · Santiago Trujillo Denunciar

0

Como tiene asincronía, deberá cambiar su código a

 data.products.data = await Promise.all(data?.products?.data?.map(async (item) => { const category = await customPIMListStore.getProductCategory(item.productCategoryId, token); return { ...item, category }; }));

o

 Promise.all(data?.products?.data?.map(async (item) => { const category = await customPIMListStore.getProductCategory(item.productCategoryId, token); return { ...item, category }; })).then(result => data.products.data = result);
about 4 years ago · Santiago Trujillo Denunciar

0

Tendrá que hacer su propia implementación del mapa. Dado que la función de mapa no es una función asíncrona.

 productsData.forEach((item, i) => { let category = ''; customPIMListStore.getProductCategory(item.productCategoryId, token).then((data) => { category = data; console.log('category inside', category); productsData[i] = { ...item, category } }); });

EDITAR: convertir for loop a forEach loop por razones de seguridad. señalado por Abdel

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda