Swagger Logo

Hace poco escribí sobre el uso de Node.js con Swagger para crear un receptor sencillo para el Pasarela de sincronización alimentación de cambios. En esa versión hice todo usando llamadas síncronas. Estoy trabajando para construir una solución más completa, así que decidí cambiar a usar Promises. Opté por utilizar el Bluebird Biblioteca de promesas. Bluebird tiene algunas características interesantes sobre la versión incorporada.

El problema

Me encontré con un problema que tardé un poco en resolver. Bluebird tiene una práctica función devolver. Es una forma abreviada de crear una Promise que resuelva el valor dado. Se usa así:

Sin embargo, cuando usé esto, seguí recibiendo errores:

Esto fue realmente desconcertante al principio, ya que las construcciones más complicadas funcionaban bien.

La solución

Bluebird está diseñado para reemplazar la implementación estándar de Promises. Sin embargo, el Cliente Swagger JS utiliza el Q Promete biblioteca explícitamente.

Esto significa que las promesas devueltas por mis llamadas a los puntos finales de Sync Gateway estaban siendo reemplazadas por la versión Q. Dado que Bluebird y Q comparten gran parte de su API central, me costó un poco darme cuenta de lo que estaba pasando.

Hay varias formas de abordar esta cuestión. Desde devolver es una rutina tan simple, que decidí seguir utilizando el equivalente entonces llamar.

Aquí tienes algunas alternativas que puedes probar si quieres:

  • promisifyAll Swagger en lugar de utilizar el soporte integrado de Swagger
  • Utilice el proyecto "bluebird-q" para sustituir Q por Bluebird
  • Envuelva las llamadas con Promise.resolver()

Posdata

Consulte más recursos en nuestra portal para desarrolladores y síganos en Twitter @CouchbaseDev.

Puede enviar preguntas a nuestro foros. Y participamos activamente en Stack Overflow.

Puede seguirme personalmente en @HodGreeley.

Autor

Publicado por Hod Greeley, Defensor del Desarrollador, Couchbase

Hod Greeley es desarrollador de Couchbase y vive en Silicon Valley. Tiene más de dos décadas de experiencia como ingeniero de software y director de ingeniería. Ha trabajado en una variedad de campos de software, incluyendo física computacional y química, seguridad informática y de redes, finanzas y móviles. Antes de unirse a Couchbase en 2016, Hod dirigió las relaciones con desarrolladores para móviles en Samsung. Hod es doctor en física química por la Universidad de Columbia.

Dejar una respuesta