Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

262
Views
¿Es posible mapear a través de una matriz y obtener datos de un servidor para cada elemento obtenido de la matriz asignada?

Los datos consisten en una matriz de publicaciones realizadas por diferentes usuarios en la base de datos. Cada publicación contiene el _id del usuario que realizó la publicación. Quiero mapear cada publicación, obtener el _id de la publicación y obtener los datos del usuario para cada publicación. esto es lo lejos que he llegado. ¿Hay una manera adecuada de hacer esto o una mejor manera? Me estoy encontrando con errores.

 const getUsers = () => { data.map(async () => { await axios({ method: "POST", withCredentials: true, url:`https://droplikebackend.herokuapp.com/api/user/get/${id}`, data: { userId: data.userId, }, }) .then((res) => { console.log(res.data); }) .catch((err) => { console.log(err); }); }); };
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Lo que funcionará mejor es extraer la lógica getUser exacta en una función separada. Lo que no estoy seguro es por qué el método es "POST" y por qué la identificación del usuario está tanto en la URL como en la propiedad de datos en axios.

No es necesario usar .then y .catch como puede ver, pero si quiere capturar algo, simplemente use un bloque normal de prueba/captura, no mezcle async/await con .then.catch:

 const getUser = async (userId) => { const response = await axios({ method: "POST", withCredentials: true, url: `https://droplikebackend.herokuapp.com/api/user/get/${userId}`, data: { userId: userId } }); return response.data; };

Ahora sobre el uso: la función de mapa en este caso devolverá una serie de Promesas, como puede ver, y puede usar el método Promise.all() para esperarlas todas y obtener los resultados. Todas las promesas se dispararán de forma simultánea y no una por una si fuera un bucle for con esperas. Contras: si su API tiene un limitador de velocidad, puede ser baneado por un tiempo, porque para 100 publicaciones, 100 solicitudes getUser se activarán en menos de un segundo.

 const getUsers = async () => { const promises = data.map((post) => getUser(post.userId)); const users = await Promise.all(promises); return users; };
about 4 years ago · Santiago Trujillo Report

0

aplicación.js

 const axios = require("axios"); const getUsers = async (id) => { const data = await axios({ method: "get", url: id // if exist id search for id, if not exist map of restult ? `https://jsonplaceholder.typicode.com/posts/${id}` : "https://jsonplaceholder.typicode.com/posts" }); if (id) { // if exist an id return a object and not array return console.log(data.data.id); } else { // map the array data.data.map((post) => console.log(post.id)); } }; getUsers(); // all post // getUser(1) only bring the post with id 1

No puede usar data.map porque los datos no están definidos antes, puede validar si la función trae una identificación o no y viene con todas las publicaciones o solo con una publicación. Usé JsonPlaceHolder porque tu API es una publicación. pero es lo mismo. En mi ejemplo, con solo encontrar en la publicación es y objeto, puede pasar una matriz y con sombrero no es necesario validar si es un objeto o una matriz y el mapa de datos funcionará bien. No puede usar el mapa de datos porque los datos no está definido antes, puede validar si la función trae una identificación o no y viene con todas las publicaciones o solo con una publicación. Usé JsonPlaceHolder porque tu API es una publicación. pero es lo mismo. En mi ejemplo, con solo encontrar en la publicación es un objeto, puede pasar una matriz y con sombrero no es necesario validar si es un objeto o una matriz y el mapa de datos funcionará bien

about 4 years ago · Santiago Trujillo Report

0

[ { "_id": "62f45046a763042f5f35ba06", "userId": "62eb470392306d95ed89d964", "Image": "", "caption": "Monday!", "likes": [], "comments": [] }, { "_id": "62f4504ea763042f5f35ba08", "userId": "62eb470392306d95ed89d964", "Image": "", "caption": "Tuesday!", "likes": [], "comments": [] } ]

Así es como se ven los datos. Quiero mostrar el nombre de usuario de los usuarios que hicieron estas publicaciones y solo puedo hacerlo obteniendo sus datos individuales del ID de usuario adjunto a la publicación.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!