Hãy cố gắng thực hiện điều đó thông qua new Promise
và Promise.all
new Promise
để tạo ra một lời hứa mới. Hàm được truyền vào sẽ nhận được các hàm giải quyết và từ chối khi các đối số của nó có thể được gọi để niêm phong số phận của lời hứa đã tạo.
Promise.all
rất hữu ích khi bạn muốn đợi hoàn thành nhiều lời hứa.
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();
})
});
}