Försök att göra det genom new Promise
och Promise.all
new Promise
att skapa ett nytt löfte. Den godkända funktionen kommer att få funktioner lösa och förkasta som sina argument som kan kallas för att besegla ödet för det skapade löftet.
Promise.all
är användbart när du vill vänta på att mer än ett löfte ska fullföljas.
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();
})
});
}