MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Transformer un script d'ensemencement Mongoose en promesse

Veuillez essayer de le faire via new Promise et Promise.all

new Promise créer une nouvelle promesse. La fonction transmise recevra comme arguments les fonctions resolve et rejet qui peuvent être appelées pour sceller le sort de la promesse créée.

Promise.all est utile lorsque vous souhaitez attendre que plusieurs promesses se terminent.

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