Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

95
Vistas
No puedo almacenar la respuesta proviene de la API de pago

He estado implementando un sistema de comercio electrónico pero tengo un problema con la API de pago de iyzipay. Realizo una solicitud exitosa y obtengo una respuesta del servidor, pero no puedo almacenar los datos que provienen del servidor. alguien ayuda?

 let returnedData = {} iyzipay.payment.create(paymentRequest, function (err, result) { if (err) { return next(new CustomError("Ödeme başarısız.", 500)) } return returnedData = result }) //ı can't see data here and return empty {} console.log(returnedData) // but ı can see here when ı wait 1 second setTimeout(() => { console.log(returnedData) }, 1000);
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Como está llamando a una función async , debe await su resultado. Es por eso que su primer registro de la consola no imprime el resultado y después de 1 segundo sí lo hace, porque en ese tiempo (+ el tiempo de ejecución de la pila) está obteniendo el resultado

La función que se puede await ed:

 function createPayment(paymentRequest) { return new Promise((resolve, reject) => { iyzipay.payment.create(paymentRequest, function (err, result) { if (err) reject(new CustomError("Ödeme başarısız.", 500)); resolve(result); }); }); }

En general:

 (async () => { const request = {/* whatever */}; try { const res = await createPayment(request); console.log(res); // Now it's here } catch(e) { console.error(e); } })();

Probablemente esté en una ruta, por lo que el código real sería:

 app.use('/payment', async (req, res, next) => { try { const result = await createPayment(req); console.log(result); // Now it's here res.end(); } catch(e) { next(e); } })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Se llama a su primera consola antes de que se complete la solicitud. Cuando se espera 1 segundo, la solicitud se completa y la respuesta se almacena en la variable returnData. Entonces, para su requisito, intente usar la promesa o llame a una función para almacenar la respuesta de la función de creación de pago con la respuesta como parámetro.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda