MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Trasformare uno script di seeding di Mongoose in una promessa

Prova a farlo tramite new Promise e Promise.all

new Promise per creare una nuova promessa. La funzione passata riceverà funzioni risolte e rifiutate come suoi argomenti che possono essere chiamati a suggellare il destino della promessa creata.

Promise.all è utile quando vuoi aspettare che più di una promessa venga completata.

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();
        })
    });
}