콜백이있는 비동기 / 대기 서비스 응답 문제

아피 시토 디아즈

Firebird 데이터베이스를 쿼리하기 위해 node-firebird JavaScript 모듈을 사용하고 있습니다.

모듈이 콜백으로 응답하고 해당 모듈의 응답을 기다리기 위해 비동기 / 대기 작업을 수행 할 수 없습니다.

"padron.controller"컨트롤러는 "padron.service"서비스를 호출하여 쿼리를 작성합니다.

try {
  let res = await this.padronService.getFamilia(body);
  console.log('padron.controller - Response from padron.service', res);
  return res;
} catch {
  throw new Error('Erro na DB');
}

모든 쿼리를 DB에 중앙 집중화하는 "firebird.service"에 대한 "padron.service"호출.

try {
  let res = await this.firebirdService.getQuery(query, params);
  console.log('padron.service - Response from FirebirdService ================', res);
  return res;
} catch {
  throw new Error('Erro na DB');
}

"firebird.service"는 "node-firebird"라이브러리를 사용하며 콜백과 함께 반환됩니다.

fb.attach(this.options, (err, db) => {

        if (err) throw new Error('Erro na conexión á DB');

        db.query(query, params, (err, res) => {

            if (err) throw new Error('Erro na consulta ó Padrón');;

            console.log('firebird.service - Response DB ================', res);

            db.detach();

            return res

        });

    });

내 문제는 대답의 순서

padron.service - Response desde FirebirdService ================ undefined
padron.controller - Response desde padron.service undefined
firebird.service - Response DB ================ {
    USU_USUARIO: 'SUPER',
    USU_CLAVES: '',
    USU_CARGO: 'ADMINISTRADOR',
    USU_TER: null,

주문해야 할 때

firebird.service - Respuesta DB ================ { 
    USU_USUARIO: 'SUPER',
    USU_CLAVES: '',
padron.service - Respuesta desde FirebirdService ================ undefined
padron.controller - Respuesta desde padron.service undefined

await는 DB의 콜백을 기다리지 않습니다.

그리고 나는 그것을 고치는 방법을 모릅니다.

mss

padron.service에서 언급 한 코드를 아래와 같은 약속으로 감싸십시오. 이제 db에서 반환 된 값은 resolve 콜백에 전달하여 반환되며, 오류가 있으면 reject 콜백에 전달합니다.

오류가 발생한 경우 비동기 작업에서 콜백을 거부하도록 전달하면 오류 발생과 비교하여 예상치 못한 출력이 제공되지 않습니다.

return new Promise((resolve, reject) => {
    fb.attach(this.options, (err, db) => {

        if (err) {
            // throw new Error('Erro na conexión á DB');
            reject('Erro na consulta ó Padrón');
        }

        db.query(query, params, (err, res) => {

            if (err) {
                // throw new Error('Erro na consulta ó Padrón');
                reject('Erro na consulta ó Padrón');
            }
            console.log('firebird.service - Response DB ================', res);

            db.detach();
            // return res
            resolve(res);
        });
    });
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

204 응답 및 콜백 기능이있는 비콘 추적 이미지

분류에서Dev

마이크로 서비스 비동기 작업 HTTP 응답

분류에서Dev

비동기 대기 / 약속 기반 응답을 얻는 방법

분류에서Dev

비동기 웹 응답을위한 끝없는 대기

분류에서Dev

RobotFramework에서 비교하기 전에 JSON 응답에서 공백을 제거하는 방법이 있습니까?

분류에서Dev

kafkatemplate 비동기 응답을 위해 작성된 최대 비동기 스레드 수는 얼마입니까?

분류에서Dev

async / await없이 비동기 HTTP 요청에 대한 응답 대기

분류에서Dev

제한된 / 특수 문자가 응답하는 WCF 서비스

분류에서Dev

비동기 서비스 (Vue + Nuxt)에서 axios 응답 반환

분류에서Dev

Superagent가 비동기 폭포에서 응답 콜백 위치를 이동합니다.

분류에서Dev

POST API 호출을 만드는 비동기 메서드에서 응답, 본문 및 오류 받기

분류에서Dev

N 비동기 서비스 호출의 응답을 클라이언트에 대한 1 개의 응답으로 통합

분류에서Dev

웹 서비스의 비동기 응답-CXF JAXWS

분류에서Dev

비동기 요청 읽기 응답 본문

분류에서Dev

테이블 레코드를 서비스 응답과 자주 동기화

분류에서Dev

웹 서비스 응답 후 테이블보기 채우기

분류에서Dev

비동기 닫기 이벤트에 대한 프록시의 응답

분류에서Dev

비동기 닫기 이벤트에 대한 프록시의 응답

분류에서Dev

개조 콜백 응답 본문 받기

분류에서Dev

비동기식 콜백에서 호출자가 언제 콜백되는지 어떻게 알 수 있습니까?

분류에서Dev

APEX REST 서비스에 대한 JSON 응답을 구문 분석하는 방법

분류에서Dev

컨트롤러에서 Spring 비동기 요청 처리 문제-java.lang.IllegalStateException 가져 오기 : 응답이 커밋 된 후 전달할 수 없습니다.

분류에서Dev

JSON 응답 데이터 크기 문제

분류에서Dev

PrivateRoute-비동기 응답을 기다리는 방법?

분류에서Dev

약속 또는 비동기 콜백이있는 Socket.io

분류에서Dev

Node.JS-어떤 비동기 HTTP GET 응답이 콜백에서 데이터를 반환하는지 식별하는 방법은 무엇입니까?

분류에서Dev

비동기 응답을위한 프로토콜 사용

분류에서Dev

GWT 비동기 콜백에서 Hashmap이 비어 있습니다.

분류에서Dev

ZeroMQ 요청 및이 요청에 대한 다중 비동기 응답

Related 관련 기사

  1. 1

    204 응답 및 콜백 기능이있는 비콘 추적 이미지

  2. 2

    마이크로 서비스 비동기 작업 HTTP 응답

  3. 3

    비동기 대기 / 약속 기반 응답을 얻는 방법

  4. 4

    비동기 웹 응답을위한 끝없는 대기

  5. 5

    RobotFramework에서 비교하기 전에 JSON 응답에서 공백을 제거하는 방법이 있습니까?

  6. 6

    kafkatemplate 비동기 응답을 위해 작성된 최대 비동기 스레드 수는 얼마입니까?

  7. 7

    async / await없이 비동기 HTTP 요청에 대한 응답 대기

  8. 8

    제한된 / 특수 문자가 응답하는 WCF 서비스

  9. 9

    비동기 서비스 (Vue + Nuxt)에서 axios 응답 반환

  10. 10

    Superagent가 비동기 폭포에서 응답 콜백 위치를 이동합니다.

  11. 11

    POST API 호출을 만드는 비동기 메서드에서 응답, 본문 및 오류 받기

  12. 12

    N 비동기 서비스 호출의 응답을 클라이언트에 대한 1 개의 응답으로 통합

  13. 13

    웹 서비스의 비동기 응답-CXF JAXWS

  14. 14

    비동기 요청 읽기 응답 본문

  15. 15

    테이블 레코드를 서비스 응답과 자주 동기화

  16. 16

    웹 서비스 응답 후 테이블보기 채우기

  17. 17

    비동기 닫기 이벤트에 대한 프록시의 응답

  18. 18

    비동기 닫기 이벤트에 대한 프록시의 응답

  19. 19

    개조 콜백 응답 본문 받기

  20. 20

    비동기식 콜백에서 호출자가 언제 콜백되는지 어떻게 알 수 있습니까?

  21. 21

    APEX REST 서비스에 대한 JSON 응답을 구문 분석하는 방법

  22. 22

    컨트롤러에서 Spring 비동기 요청 처리 문제-java.lang.IllegalStateException 가져 오기 : 응답이 커밋 된 후 전달할 수 없습니다.

  23. 23

    JSON 응답 데이터 크기 문제

  24. 24

    PrivateRoute-비동기 응답을 기다리는 방법?

  25. 25

    약속 또는 비동기 콜백이있는 Socket.io

  26. 26

    Node.JS-어떤 비동기 HTTP GET 응답이 콜백에서 데이터를 반환하는지 식별하는 방법은 무엇입니까?

  27. 27

    비동기 응답을위한 프로토콜 사용

  28. 28

    GWT 비동기 콜백에서 Hashmap이 비어 있습니다.

  29. 29

    ZeroMQ 요청 및이 요청에 대한 다중 비동기 응답

뜨겁다태그

보관