promise.all против асинхронного модуля против ожидания
Учитывая следующие блоки кода: -
try {
const [authors, genres] = await Promise.all([
Author.find({}).exec(),
Genre.find({}).exec(),
]);
res.render("book_form", {
title: "Create Book",
authors: authors,
genres: genres,
});
} catch (e) {
next(e);
}
const results = await async.parallel({
authors: (callback) => {
Author.find().exec(callback);
},
genres: (callback) => {
Genre.find().exec(callback);
},}) //render
try{
const genres = await Genre.find({});
const authors = await Author.find({});
res.render("book_form", {
title: "Create Book",
authors: authors,
genres: genres,
});
}
catch(e) {
next(e)
}
Promise.all([Author.find({}).exec(), Genre.find({}).exec()])
.then((result) => {
res.render("book_form", {
title: "Create Book",
authors: result[0],
genres: result[1],
});
})
.catch((e) => {
next(e);
});
Есть ли у кого-то из них преимущество перед остальными? Зачем мне использовать асинхронный модуль вместо promise.all? Я понимаю, что сам модуль имеет много разных функций для более сложных задач, но в достаточно простой ситуации нет ничего плохого в том, чтобы выбрать другие подходы вместо него?