Ich habe viel über die asynchrone Eigenschaft unserer node.js und über die Möglichkeiten von Callbacks gelesen.Node.js Variablenbereich außerhalb der Funktion
Aber ich verstehe nicht, wenn ich eine Funktion definieren und den Wert der Variablen innerhalb dieser Funktion ändern, warum ist es außerhalb der Funktion nicht verfügbar.
Lassen Sie mich anhand eines Beispiels auf den Code zeigen, an dem ich gearbeitet habe.
var findRecords = function(db, callback) {
var cursor =db.collection('meta').find({"title":"The Incredible Hulk: Return of the Beast [VHS]"}, {"asin":1,_id:0}).limit(1);
pass="";
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
var arr = JSON.stringify(doc).split(':');
key = arr[1];
key = key.replace(/^"(.*)"}$/, '$1');
pass =key;
console.log(pass); //Gives correct output
}
});
console.log(pass) //Does not give the correct output
};
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
findRecords(db, function() {
db.close();
});
});
Hier, wenn der Wert des Durchlaufs in der Funktion Druck gibt es den neuen Wert zugewiesen, aber wenn außerhalb der Funktion zum zweiten Mal Druck ist es nicht den neuen Wert geben.
Wie kann dieses Problem behoben werden.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures –