Ich weiß, await
in Schleifen wird dringend abgeraten. Aber ich stecke in einem bestimmten Fall fest, ich kann nicht herausfinden, wie man es effizient macht. Ich möchte eine endgültige Ausgabe variabler values
wie dieseeffiziente Verwendung von async/erwarten
{
jobId1: [[..], [..], [..], [..]],
jobId2: [[..], [..], [..], [..]] // list goes on
}
Das unten Snippet meiner aktuellen Implementierung darstellen.
for (let jb of jobList) {
const subArray = []
const rel1 = new Parse.Relation(jb, 'applicants')
const rel2 = new Parse.Relation(jb, 'shortlisted')
const rel3 = new Parse.Relation(jb, 'hired')
const rel4 = new Parse.Relation(jb, 'rejected')
subArray.push(rel1.query().containedIn('objectId', uniqUserIds).select('objectId').find())
subArray.push(rel2.query().containedIn('objectId', uniqUserIds).select('objectId').find())
subArray.push(rel3.query().containedIn('objectId', uniqUserIds).select('objectId').find())
subArray.push(rel4.query().containedIn('objectId', uniqUserIds).select('objectId').find())
values[jb.id] = await Promise.all(subArray)
}
Ich kann alle Versprechen in ein einziges Array schieben und auf alle warten. aber ich würde die Spur verlieren, deren Versprechen Wert zu dem Job ID gehört. Obwohl das Aufteilen des ganzen Array auf jeden 4. Index mich dazu bringen wird, was ich will, suche ich nach noch besseren Alternativen.
'aber ich würde die Spur verlieren, die Versprechen Wert zu welcher Job-ID gehört '- nein, du würdest nicht ... und ... die letzten zwei Zeilen? Warum? die erste Zuordnung zu Werten [jb.id] ist bedeutungslos, da sie von der zweiten –
+ Jaromanda X überschrieben wird, so weit ich weiß, wird sie verwendet, um im Falle von undefined zu initialisieren. aber ich bearbeite das Snippet –
"* Ich weiß' erwarten 'in Schleifen wird dringend abgeraten. * "- Nein ist es nicht? Wenn Sie eine sequenzielle Iteration wünschen, ist es genau der richtige Weg. – Bergi