MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Transformando um script de semeadura do Mongoose em uma promessa


Tente fazê-lo através de new Promise e Promise.all

new Promise para criar uma nova promessa. A função passada receberá funções resolve e rejeita como seus argumentos que podem ser chamados para selar o destino da promessa criada.

Promise.all é útil para quando você deseja aguardar a conclusão de mais de uma promessa.
var bookOps = [];

books.forEach(function (book) {
    bookOps.push(saveBookAsync(book));
});

Promise.all(bookOps).then(function() {
   bookshelfConn.close(function () {
      console.log('Mongoose connection closed!');
    });
});

function saveBookAsync(book) {
    return new Promise(function(resolve, reject) {
        new Book(book).save(function(err) {
            if (err)
                reject(err);
            else
                resolve();
        })
    });
}