Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Promise

Boa tarde, gostaria de entender porque em alguns casos é necessario dar o return no resolve() e em outros não ?

2 respostas

Boa tarde, Rene! Como vai?

Vc poderia dar um exemplo de situações onde isso ocorreu para que eu possa me contextualizar?

tudo certo sim!

No exercício de desenvolver os demais métodos, vc não colocou o return no resolve() no método adiciona, mas nos demais métodos sim, isso me confundiu um pouco, segue o código:

 adiciona(livro) {
        return new Promise((resolve, reject) => {
            this._db.run(`
                INSERT INTO livros (
                    titulo, 
                    preco,
                    descricao
                ) values (?,?,?)
                `,
                [
                    livro.titulo,
                    livro.preco,
                    livro.descricao
                ],
                function (err) {
                    if (err) {
                        console.log(err);
                        return reject('Não foi possível adicionar o livro!');
                    }

                    resolve();
                }
            )
        });
    }

    lista() {
        return new Promise((resolve, reject) => {
            this._db.all(
                'SELECT * FROM livros',
                (erro, resultados) => {
                    if (erro) return reject('Não foi possível listar os livros!');

                    return resolve(resultados);
                }
            )
        });
    }