Мне нужно сделать 3 основных вызова API (A1, B1 и C1) и 2 дополнительных вызова API (A2 и B2). Это их зависимости:
- C1 должен ожидать как A1, так и B1
- A2 должен ожидать A1
- B2 должен ждать B1
Это работает, но не является правильным подходом, потому что мне не нужно ждать, пока B1 завершит sh, прежде чем я смогу позвонить A2 (или A1 до fini sh, прежде чем я смогу позвонить B2). Примечание: trigger()
возвращает обещание.
const a1 = A1.trigger();
const b1 = B1.trigger();
await Promise.all([a1, b1]);
A2.trigger(); // should happen earlier
B2.trigger(); // should happen earlier
C1.trigger();
Думаю, я мог бы сделать это:
async function handleA() {
const a1 = await A1.trigger();
A2.trigger();
return a1;
}
async function handleB() {
const b1 = await B1.trigger();
B2.trigger();
return b1;
}
await Promise.all([handleA(), handleB()]);
C1.trigger();
В этом случае это работает, потому что мне не нужно беспокоиться о A2 , B2 или C1, иначе мне нужно было бы запустить функции вложения, и это могло бы стать волосатым.
Есть ли лучший подход или это лучший способ сделать это?