Swagger Logo

최근에 저는 Swagger를 사용한 Node.js 에 대한 간단한 리스너를 구축하기 위해 동기화 게이트웨이 피드를 변경합니다. 그 버전에서는 동기식 호출을 사용하여 모든 작업을 수행했습니다. 보다 완벽한 솔루션을 구축하기 위해 노력 중이므로 약속을 사용하기로 결정했습니다. 저는 블루버드 약속 라이브러리. 블루버드는 기본 제공 버전에 비해 몇 가지 멋진 기능이 있습니다.

문제

한 가지 문제를 해결하는데 시간이 좀 걸렸습니다. 블루버드에는 편리한 기능이 있습니다. 반환. 주어진 값으로 해결되는 프로미스를 만드는 것을 줄여 부르는 말입니다. 이렇게 사용하면 됩니다:

하지만 이 기능을 사용할 때 계속 오류가 발생했습니다:

더 복잡한 구조는 잘 작동했기 때문에 처음에는 정말 당황스러웠습니다.

솔루션

블루버드는 표준 프로미스 구현을 대체할 수 있도록 만들어졌습니다. 그러나 Swagger JS 클라이언트Q 라이브러리를 명시적으로 프로미스합니다.

즉, 동기화 게이트웨이 엔드포인트에 대한 호출로 반환되는 약속이 Q 버전으로 대체되고 있었습니다. Bluebird와 Q는 핵심 API의 상당 부분을 공유하기 때문에 무슨 일이 일어나고 있는지 알아내기 위해 약간의 조사가 필요했습니다.

이 문제를 해결할 수 있는 몇 가지 방법이 있습니다. 이후 반환 가 너무 간단한 루틴이기 때문에, 저는 그냥 동등한 수준의 다음 호출합니다.

원하는 경우 시도해 볼 수 있는 몇 가지 대안이 있습니다:

  • 약속하기 Swagger의 기본 지원 대신 Swagger 사용
  • "bluebird-q" 프로젝트를 사용하여 Q를 블루버드로 바꾸기
  • 다음으로 통화를 마무리합니다. Promise.resolve()

포스트 스크립트

더 많은 리소스를 확인하세요. 개발자 포털 트위터에서 팔로우하세요 카우치베이스 개발.

질문에 대한 답변을 게시할 수 있습니다. 포럼. 그리고 다음에도 적극적으로 참여합니다. 스택 오버플로.

다음 주소에서 저를 개인적으로 팔로우할 수 있습니다. 호드그릴리.

작성자

게시자 호드 그릴리, 개발자 옹호자, 카우치베이스

호드 그레이리는 실리콘밸리에 거주하는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어 및 엔지니어링 관리자로서 20년 이상의 경력을 보유하고 있습니다. 그는 전산 물리학 및 화학, 컴퓨터 및 네트워크 보안, 금융, 모바일 등 다양한 소프트웨어 분야에서 일해 왔습니다. 2016년 카우치베이스에 합류하기 전에는 삼성에서 모바일 개발자 관계를 이끌었습니다. 컬럼비아 대학교에서 화학 물리학 박사 학위를 받았습니다.

댓글 남기기