Silakan coba melakukannya melalui new Promise
dan Promise.all
new Promise
untuk membuat janji baru. Fungsi yang diteruskan akan menerima fungsi yang diselesaikan dan ditolak sebagai argumennya yang dapat dipanggil untuk menyegel nasib janji yang dibuat.
Promise.all
berguna ketika Anda ingin menunggu lebih dari satu janji untuk diselesaikan.
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();
})
});
}