sql >> Base de Datos >  >> NoSQL >> MongoDB

Convertir un script de siembra de Mongoose en una promesa

Intente hacerlo a través de new Promise y Promise.all

new Promise para crear una nueva promesa. La función pasada recibirá funciones resolver y rechazar como sus argumentos que pueden ser llamados para sellar el destino de la promesa creada.

Promise.all es útil cuando desea esperar a que se complete más de una promesa.

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