Swagger Logo

Recentemente, escrevi sobre o uso de Node.js com Swagger para criar um ouvinte simples para o Gateway de sincronização feed de alterações. Nessa versão, eu fazia tudo usando chamadas síncronas. Como estou trabalhando para criar uma solução mais completa, decidi passar a usar Promises. Optei por usar a função Pássaro azul Biblioteca de promessas. O Bluebird tem alguns recursos interessantes em relação à versão integrada.

O problema

Deparei-me com um problema que demorei um pouco para resolver. O Bluebird tem uma função útil retorno. É apenas uma abreviação para a criação de uma Promessa que resolve o valor fornecido. Você a utiliza da seguinte forma:

No entanto, quando usei isso, continuei recebendo erros:

Isso foi realmente intrigante no início, pois as construções mais complicadas estavam funcionando bem.

A solução

O Bluebird foi criado para entrar e substituir a implementação padrão do Promises. No entanto, o Cliente Swagger JS usa o Q Promete explicitamente a biblioteca.

Isso significa que as promessas retornadas por minhas chamadas para os endpoints do Sync Gateway estavam sendo substituídas pela versão Q. Como o Bluebird e o Q compartilham grande parte de sua API principal, foi preciso investigar um pouco para perceber o que estava acontecendo.

Há algumas maneiras de resolver isso. Desde que retorno é uma rotina tão simples que decidi continuar usando o equivalente então ligar.

Aqui estão algumas alternativas para você experimentar, se quiser:

  • promisifyAll Swagger em vez de usar o suporte interno do Swagger
  • Use o projeto "bluebird-q" para substituir o Q pelo Bluebird
  • Encerre as chamadas com Promise.resolve()

Pós-escrito

Confira mais recursos em nosso portal do desenvolvedor e nos siga no Twitter @CouchbaseDev.

Você pode postar perguntas em nosso fóruns. E participamos ativamente de Estouro de pilha.

Você pode me seguir pessoalmente em @HodGreeley.

Autor

Postado por Hod Greeley, Advogado do desenvolvedor, Couchbase

Hod Greeley é um defensor dos desenvolvedores da Couchbase e mora no Vale do Silício. Ele tem mais de duas décadas de experiência como engenheiro de software e gerente de engenharia. Trabalhou em diversas áreas de software, incluindo física e química computacional, segurança de computadores e redes, finanças e dispositivos móveis. Antes de ingressar na Couchbase em 2016, Hod liderou as relações com desenvolvedores para dispositivos móveis na Samsung. Hod é Ph.D. em física química pela Universidade de Columbia.

Deixar uma resposta