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