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

220
Views
No se puede detectar el error al obtener datos en la función asíncrona

Estoy usando npm yahoo-finance para obtener datos de stock. Cuando ingreso un símbolo de cotización que no existe, me gustaría detectar el error.

 const yahooFinance = require('yahoo-finance'); async function stockData() { try { let data = await yahooFinance.historical({symbol: "SIJGAOWSFA", from: 2020-08-23, to: 2021-08-23}); } catch (error) { console.error(error) } } stockData();

Sin embargo, no parece ser un error de recuperación típico. No es ser atrapado en absoluto. Con eso quiero decir que el error que ve a continuación no se registró en la consola a través de console.error(error) . Más bien, algo fuera del alcance de este archivo está registrando el error. Cuando ocurre el error, no se ejecuta nada en catch.

ingrese la descripción de la imagen aquí

Planeo usar esto en un bucle for, por lo que me gustaría detectar el error para poder evitar ejecutar las siguientes funciones.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Un colaborador dice que:

¿Es esto de un proyecto existente que funcionaba y dejó de funcionar, o de un nuevo proyecto?

Si es lo primero, todo sigue funcionando bien de mi lado. (Muy) ocasionalmente hay problemas en yahoo que se atascan en su caché, posiblemente también relacionados con el DNS. Sugeriría borrar su caché de DNS y también intentar consultar diferentes datos para ver si eso funciona.

Si es el último (nuevo proyecto), podrían ser los datos que está consultando. Intente consultar diferentes datos y vea si funciona. Por lo general, Yahoo arroja un error específico si algo anda mal, pero podría ser esto.

Si ninguno de esos enfoques funciona, pero aún necesita detectar este tipo de error, dado el código fuente , lo que hace es:

 if (!crumb) { console.warn('root.Api.main context.dispatcher.stores.CrumbStore.crumb ' + 'structure no longer exists, please open an issue.');

Y luego continúa normalmente (sin lanzar), y finalmente devuelve una matriz vacía.

Si está seguro de que el resultado debe contener al menos un elemento, puede comprobar si está vacío y entrar en un estado de error si lo está.

De lo contrario, si no sabe si la matriz debe contener valores o no, otra opción es sobrescribir console.warn para que pueda detectar cuándo se le pasa esa cadena exacta.

Otra opción sería bifurcar la biblioteca para que (correctamente) arroje un error cuando no se encuentre, en lugar de continuar y devolver una matriz vacía, lo que hace que un resultado exitoso vacío sea indistinguible de un resultado vacío erróneo. Cambiar el

 if (!crumb) { console.warn('root.Api.main context.dispatcher.stores.CrumbStore.crumb ' + 'structure no longer exists, please open an issue.');

a

 if (!crumb) { throw new Error('root.Api.main context.dispatcher.stores.CrumbStore.crumb ' + 'structure no longer exists, please open an issue.');

y luego podrá capturarlo en su llamada a .historical .

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!