Prøv at gøre det gennem new Promise
og Promise.all
new Promise at skabe et nyt løfte. Den beståede funktion vil modtage funktioner løse og afvise som sine argumenter, der kan kaldes for at besegle skæbnen for det skabte løfte.
Promise.all er nyttig, når du vil vente på, at mere end ét løfte er fuldført.
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();
})
});
}