MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ein Mongoose-Seeding-Skript in ein Versprechen verwandeln

Bitte versuchen Sie es über new Promise und Promise.all

new Promise ein neues Versprechen zu schaffen. Die übergebene Funktion erhält als Argumente die Funktionen „resolve“ und „reject“, die aufgerufen werden können, um das Schicksal des erstellten Promise zu besiegeln.

Promise.all ist nützlich, wenn Sie warten möchten, bis mehr als ein Promise abgeschlossen ist.

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