Моля, опитайте да го направите чрез new Promise
и Promise.all
new Promise
за създаване на ново обещание. Преданата функция ще получи функции разрешаване и отхвърляне като свои аргументи, които могат да бъдат извикани, за да запечатат съдбата на създаденото обещание.
Promise.all
е полезно, когато искате да изчакате изпълнението на повече от едно обещание.
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();
})
});
}