Código
<script src="../js/panel.js" type="module"></script>
Ahroa bien en el archivo panel.js
panel.js
Código
Cuando hago click en submit del formulario este me recoge los datos del formulario y también quiero que me recoja los datos de una peticion fetch a una API que tengo.
import {DB} from './crud.js'; const API='http://localhost:5000/miramar'; const formLogin=document.querySelector("body #formLogin"); const login=(e)=>{ e.preventDefault(); let password = formLogin['pass'].value; let user = formLogin['user'].value; let empleados=new DB(`${API}/empleados/`).show(); console.log(empleados); } const init=()=>{ formLogin.addEventListener("submit",login); } init();
Para ello creo la clase DB() con el metodo show() para que me devuelva el objecto.
La clase esta definida en el archivo crud.js
Código
export class DB{ constructor(API){ this.API=API; this.result; } show(){ fetch(this.API) .then(res=>res.json()) .then(data=>this.result=data); return this.result; } }
el problema que tengo es que en el archivo panel.js hago
Código
let empleados=new DB(`${API}/empleados/`).show(); console.log(empleados);
y me devuelve undefined.
Ahora bien.
Si lo hago con promesas, me devuelve que el estado de la promesa es pending
Código
export class DB{ constructor(API){ this.API=API; this.result; } async show(){ /*fetch(this.API) .then(res=>res.json()) .then(data=>this.result=data); return this.result;*/ let res = await fetch(this.API); let data = await res.json(); this.result=data; return this.result; }
Pero si en el console.log le pongo un setTImeout de 1 segundo me devulve la promesa con los valores, pero no puedo obtener sus valores, o como los obtengo?
Código
Pero si el setTimeout lo hago dentro de la clase no me funciona, solo en el panel.js
setTImeout(()=>console.log(empleados),1000)
PD.
Los datos que quiero coger son:
Código
https://drive.google.com/drive/folders/1pSGu0ql9ZklDvDCu56vuh16FYB-HPwbU?usp=sharing
[ { "APELLIDOS": [ "León", "Guerrero" ], "_id": "609e833e6746526127be53e6", "NOMBRE": "Jhilmar", "NACIMIENTO": "2002-02-19T00:00:00.000Z", "GENERO": "M", "CONTRASENA": "Jhilmar" }, { "APELLIDOS": [ "Antonio", "Salazar" ], "_id": "609e83f26746526127be53e7", "NOMBRE": "Juan", "NACIMIENTO": "2002-02-19T00:00:00.000Z", "GENERO": "M", "CONTRASENA": "Juan Antonio" }, { "APELLIDOS": [ "Napola" ], "_id": "609e84116746526127be53e8", "NOMBRE": "Carmen", "NACIMIENTO": "2002-02-19T00:00:00.000Z", "GENERO": "F", "CONTRASENA": "Carmen" }
Gracias