Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

125
Visualizações
Problemas con Promise en React

Soy un principiante en React y recientemente me encontré con esta obtención de datos asincrónicos e intenté simularla usando Promise en el siguiente código. (La obtención de datos lleva tiempo, así que sí, debería usar setTimeout() con Promise, pero el código aquí es para simplificar)

 function List({stories}) { console.log("Hi from List"); //Testing if component is rendered return(<> { stories.map(function(element) { return (<li>{element.title}</li>); }) } </>); }
 function App() { const stories=[ {title:"Alice in Wonderland"}, {title:"Beauty & the Beast"} ]; const [newStories,setNewStories]=React.useState([]); function wait() { console.log("Check"); //To see if code works here Promise.resolve({data:stories}); } React.useEffect(function() { wait().then(result=>setNewStories(result.data)) },[]); return( <> <h1>{"Titles"}</h1> <hr/> <List stories={newStories}/> <hr/> </> ); }

El código anterior produce la salida deseada (solo durante medio segundo más o menos) y luego procede inmediatamente a dar una pantalla en blanco en blanco, pero cuando reemplazo lo siguiente, funciona perfectamente.

 React.useEffect(function() { Promise.resolve({data:stories}).then(result=>setNewStories(result.data)) },[]);

Mi pregunta es ¿por qué no funciona cuando Promise está dentro de una función y por qué aparece este "Error de tipo no detectado" para wait() ?

(El código imprime "Comprobar" en la consola, entonces, ¿por qué de repente afirma que la función no está definida?)

EDITAR Aparentemente tengo que poner una declaración de devolución allí

Gracias @Andy y otros

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

🎨 Estilo JavaScript

Primero, déjame mostrarte una guía de estilo para escribir mejor JavaScript: https://github.com/airbnb/javascript

Escribir un buen código JavaScript es esencial para que su código sea legible, no solo para usted sino para todos en StackOverflow y las personas con las que trabaja.

  • Las llaves no deben estar en su propia línea nueva
  • Deben usarse espacios en lugar de caracteres de tabulación.
  • Sangre las cosas correctamente (usando 2 o 4 espacios)
  • JSX debe tener una estructura con sangría
  • No sangrar al azar y cuando lo desee, solo cuando lo espere y siempre cuando lo espere.
  • Los comentarios al final de la línea deben aparecer a solo 1 espacio del código

👷‍♀️ Promesas

Las promesas están pensadas para la resolución asincrónica, por ejemplo, si está esperando un evento, como una solicitud de red para volver con una respuesta. Esto se debe a que al crear una solicitud de red, se activa un nuevo hilo para que el resto de su código JavaScript pueda ejecutarse en lugar de esperar la respuesta.

Las promesas no deben usarse cuando simplemente se devuelve un valor.

 // ✅ Good code function wait() { return something } // 💩 Bad code function wait() { // (This is the correct way to write a Promise resolution) return new Promise(resolve => resolve(something)); }

Además, si desea escribir una función asíncrona que devuelva una promesa, pero en realidad no está creando nuevos hilos, debe usar async / await :

 async function wait() { return something; }

✅ Tu Solución

La respuesta a su solución es simple. Su función de wait no devuelve nada. Simplemente crear una promesa no hará nada, tienes que devolverla.

 function wait() { return Promise.resolve(something); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda