Ich muss durch ein bestimmtes JSON-Objekt durchlaufen und erstellen Sie eine Aufgabe für jedes Objekt in dort. Die angegebenen Aufgaben benötigen ebenfalls Informationen von diesem JSON-Objekt und ich frage mich, wie ich diese Informationen an meine Aufgabe weitergeben kann, damit sie bei der Ausführung verfügbar sind.Übergeben Sie Parameter an async.js Aufgabe
meine Aufgabe Array Aufbau:
var asyncScrapeTasks = [];
var resources = JSON.parse(body);
for(var i=0; i<resources.items.length; i++)
{
asyncScrapeTasks.push(function (callback)
{
console.log(resources.items[i].id);
});
}
meine Aufgaben durchführen:
async.parallelLimit(asyncScrapeTasks, 5, function() {
callback(null, "Done");
});
Mein Problem:
Gerade jetzt console.log(resources.items[i].id);
kehrt undefiniert, die Sinn macht ich, weil th Der Index i ist zu dem Zeitpunkt, zu dem die Funktionen ausgeführt werden, nicht bekannt, aber ich frage mich, wie ich mein Problem lösen kann.
Ihr Code Art unvollständig ist, da console.log keine Asynchron-Funktion ist. Können Sie ein konkreteres Beispiel dafür geben, was Sie vorhaben? – slebetman
@slebetman ja ich habe versucht, es so viel wie möglich zu vereinfachen. Im Grunde möchte ich ein Json-Objekt von einer externen URL erhalten und spezifische Informationen aus dieser JSON-Datei abrufen, um es in meiner eigenen Datenbank zu speichern. – kentor
Aber Ihr Kommentar 'weil Ressourcen zu dem Zeitpunkt, an dem die Funktionen ausgeführt werden, noch nicht bekannt sind' ergibt am Beispiel keinen Sinn. Wenn das wirklich passiert, dann ist das Beispiel, das du gepostet hast, das falsche (du hast es so sehr vereinfacht, dass du das Problem vollständig beseitigst) – slebetman