Я только что столкнулся с ситуацией JavaScript, где мне нужно использовать Promises для обработки некоторых связанных запросов.Мне нужно сделать 5 запросов к базе данных.Я собираюсь выделить каждый запрос в свою собственную функцию, для простоты давайте назовем эти функции (A1, B1, B2, B3 и BB1).Вот некоторые подробности:
BB1
зависит от результатов B1
. B1
, B2
и B3
зависят отрезультаты A1
.
Я хотел бы сделать, как только у меня появятся результаты A1
, я хотел бы использовать Обещания, чтобы начать B1
, B2
иB3
одновременно.Как только эти три функции вернутся, я хотел бы запустить BB1
.
Я попытался сделать что-то вроде:
A1() {
// Recieved results from A1 Query
console.log("CHECK 1");
Promise.all([
B1(), B2(), B3(),
]).then(() => {
console.log("CHECK 4");
// Wrap everything up
});
}
B1() {
// Recieved results from B1 Query
console.log("CHECK 2");
Promise.all(
BB1(),
).then(() => {
return;
});
}
BB1() {
// Recieved results from BB1 Query
console.log("CHECK 3");
return;
}
Но моя консоль ведет журнал: "Проверка 1", "Проверка2 "," Проверка 4 "," Проверка 3 ".
Я также пытался:
A1() {
// Recieved results from A1 Query
console.log("CHECK 1");
Promise.all([
B1(), B2(), B3(),
]).then(() => {
BB1();
}).finally(() => {
// Wrap everything up
});
}
Но это также дало те же результаты.Как я могу запустить три одновременные функции, затем запустить цепочку функций и, наконец, завершить все?Мне удалось найти результаты только для одного или другого, но не для комбинации обоих ...