Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

streamToPromise não resolve a Promise #30

Open
valentimaraujo opened this issue Feb 26, 2021 · 4 comments
Open

streamToPromise não resolve a Promise #30

valentimaraujo opened this issue Feb 26, 2021 · 4 comments

Comments

@valentimaraujo
Copy link

valentimaraujo commented Feb 26, 2021

Nos exemplos de uso, na parte do código abaixo:

novoBoleto.pdfFile().then(async ({ stream }) => {
  // ctx.res.set('Content-type', 'application/pdf');	
  await streamToPromise(stream); <<< ==== Não resolve a Promise
}).catch((error) => {
  return error;
});

Se colocarmos algo para aguardar o retorno da Promise: await streamToPromise(stream);, o codigo não ira rodar porque a Promise não esta sendo resolvida, ficando assim aguardando o termino do Promise eternamente. Ex.:

novoBoleto.pdfFile().then(async ({ stream }) => {
  // ctx.res.set('Content-type', 'application/pdf');	
  await streamToPromise(stream);
  fazerQualquerCoisa(); <<<< ==== não vai chamar a função porque a Promise da linha acima não esta sendo resolvida, mesmo o PDF sendo gerado
}).catch((error) => {
  return error;
});

Tentei corrigir mas não tive capacidade de fazer =(

@jortrembulak
Copy link

Olá, também estou tendo esse problema e sem capacidade de ajustar hehe
Agradeceria uma ajudinha.

@joaoeymard
Copy link

Olá, já faz um tempo que essa discurção foi aberta, mas pode servir para futuras implementações.
Corrigir esse erro no meu fork, mas esse método de gerar o pdf mudou um pouco.

try {
  novoBoleto.gerarBoleto();
  const stream = await novoBoleto.pdfFile("./tmp", "boleto");

  stream.on("end", () => {
    fazerQualquerCoisa();
  });
} catch (error) {
  throw error;
}

@wagnerfillio
Copy link

wagnerfillio commented Jul 26, 2022

@joaoeymard, até tentei utilizar o seu fork, mas após a instalação e execução, recebi o erro abaixo.

image

E este é o código que executei.

Outra pergunta, como posso obter os dados do boleto, incluído a linha digitável após a promise se resolvida ? Onde contem o trecho fazerQualquerCoisa(); ?!!

const { Bancos, Boletos, streamToPromise } = require('../lib/index');

const boleto = {
  banco: new Bancos.Bradesco(),
  ...
};

async function execute() {
  const novoBoleto = new Boletos(boleto);
  try {
    novoBoleto.gerarBoleto();
    const stream = await novoBoleto.pdfFile("./tmp", "boleto");

    stream.on("end", () => {
      console.log('fazerQualquerCoisa')
      //fazerQualquerCoisa();
    });
  } catch (error) {
    console.log(error)
    throw error;
  }
}
execute();

@joaoeymard
Copy link

@wagnerfillio já fiz várias modificações para atender a minha necessidade. Assim pode ser necessário trabalhar diferente de como está na documentação.
Estou a disposição para tirar mais dúvidas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants