У меня есть этот фрагмент кода; Он в основном подключается к базе данных mongo и проходит через документы. На каждой итерации он ищет массив сообщений. Он создает переменную сообщений, а затем проходит через нее. Описанная переменная (var msg
) внутри функции обратного вызова остается в памяти или она уничтожена после завершения функции обратного вызова? Будет ли какая-либо разница, если var msg
был фактически объявлен как let msg
? Есть ли способ отбросить всю область памяти?Сохраняются ли переменные, объявленные внутри функций обратного вызова, в памяти или уничтожаются после завершения обратного вызова?
MongoClient.connect(mongoUrl, (err, db) => {
assert.equal(null,err);
var collection_data = db.collection('threadContents').find();
collection_data.on('data', (doc) => {
var msg = doc.messages;
for (var variable in msg) {
console.log(msg);
}//forin(msg)
});//collection_data.on
});//mongo.connect
'это уничтожено после завершения функции функции обратного вызова?' - часто это так, это действительно зависит от кода –
@JaromandaX Я предоставил образец фрагмента кода. В противном случае рекомендуется использовать способ принудительного разрушения переменной после завершения функции обратного вызова? – Kunok
О, вы спрашиваете о своем конкретном коде? с какой переменной вы связаны? –