Ich bin ein Modul erstellen, die Aufgaben basierend auf einer Konfiguration ausführt, die es empfängt. Diese Aufgaben sind asynchron und geben ein Versprechen zurück. Momentan gibt es nur zwei Aufgaben zu bewältigen, aber wenn es mehr gibt, werde ich auf ein Problem stoßen, welches Ergebnis von Promise.all()
zu welcher Aufgabe gehört. HierSo identifizieren Sie Ergebnisse in Promise.all()
ist ein Kinderspiel meines aktuellen Code:
let asyncTasks = [];
let result = {};
if (config.task0) {
asyncTasks.push(task0(param));
}
if (config.task1) {
asyncTasks.push(task1(param));
}
Promise.all(asyncTasks)
.then(results => {
// TODO: There has to be a prettier way to do this..
if (config.task0) {
result.task0 = results[0];
result.task1 = config.task1 ? results[1] : {};
} else if (config.task1) {
result.task0 = {};
result.task1 = results[0];
} else {
result.task0 = {};
result.task1 = {};
}
this.sendResult(result)
});
Die Config wie folgt aussehen:
const config = {
task0: true,
task1: true
};
Wie im Code erwähnt, hat es eine schöne und skalierbare Art und Weise zu sein, Identifizieren Sie, welches Ergebnis von welcher Aufgabe kommt, aber ich kann nichts über Promise.all()
finden, das dabei helfen könnte.
Wie kann ich feststellen, welcher Wert zu welchem Versprechen gehört, wenn Promise.all()
verrechnet wird?
Sie können in Drossel aussehen, hat es praktisch Methoden Ihres Fall –