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

169
Views
Promesa, objeto literal, API Java Script

Ok, creo que estoy haciendo mal la promesa. tengo 2 problemas:

  • Los resultados dentro de la clase no funcionan. pero cuando lo recupero en app.js, se muestra como una promesa.

  • Los resultados dentro de las aulas deberían ser más de una fila/objeto pero solo me da un resultado

Puedo obtener el resultado que quiero dentro de la clase, pero en la siguiente app.js obtengo esto cuando intento recuperar los valores de los resultados: Promise {}

 let results document.getElementById('crypto').addEventListener('keyup', (e) => { const cryptoInput = e.target.value; console.log(cryptoInput); if (cryptoInput.length > 2) { results = crypto.getPrice(currency, cryptoInput) //here I get Promise {<pending>} console.log(results) } }) const table = document.getElementById('resultsTable'); let i = 0; function showOptions(results) { console.log(results) }

la clase está funcionando:

 class CoinGecko { constructor() { } async list() { const list1 = await fetch(`https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=250&page=1&sparkline=false`); const list2 = await fetch(`https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=250&page=2&sparkline=false`); const list1Json = await list1.json(); const list2Json = await list2.json(); const list = Object.assign(list1Json, list2Json); //const list = list1Json.concat(list2Json); return list; //console.log(list); } async getPrice(currency = 'usd', crypto) { let results=[]; const toutCrypto = await this.list().then(res => { Object.keys(res).forEach(function (element){ if (res[element].id.startsWith(crypto) || res[element].name.startsWith(crypto) || res[element].symbol.startsWith(crypto)) { //console.log(); results.push({ id: res[element].id, name: res[element].name, image: res[element].image, symbol: res[element].symbol, price: res[element].current_price, date: res[element].last_updated, }) console.log(results[0]) } }); }); console.log(results[0].id) return { results } } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

lo siento por la respuesta tardía, agregue espera a su función asíncrona

 results = await crypto.getPrice(currency, cryptoInput)

está utilizando una función asíncrona pero no está esperando la respuesta, es por eso que obtiene la promesa como resultado

Probé el código, aquí hay un resultado de ejemplo: ingrese la descripción de la imagen aquí

editar: como dice Phil , debe hacer que su detector de eventos sea asíncrono

 document.getElementById("crypto").addEventListener("keyup", async (e) => {
about 4 years ago · Juan Pablo Isaza 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!