У меня есть кусок кода, как это:Передача переменных в функцию обратного вызова
var guid = 'unique_guid';
con.query('SELECT guid FROM myDB.myTable WHERE guid = ?', guid, function(err, rows) {
if(err) throw err;
if(rows.length == 0) {
console.log('new guid: ' + guid);
// do more things which require guid
} else {
console.log('old guid: ' + guid);
// do more things which require guid
}
}
Для того, чтобы избежать обратного вызова в ад, я даю функции обратного вызова имя и реорганизовать его в следующем виде:
var checkExistence = function(err, rows) {
if(err) throw err;
if(rows.length == 0) {
console.log('new guid: ' + guid); // guid can't be referenced here
// do more things which require guid
} else {
console.log('old guid: ' + guid); // guid can't be referenced here
// do more things which require guid
}
}
con.query('SELECT guid FROM myDB.myTable WHERE guid = ?', guid, checkExistence);
con
это соединение создается из node-mysql
Теперь моя проблема заключается в том, что я не могу ссылаться на Guid в checkExistence()
, и я не хочу введите guid
как глобальную переменную.
Можно ли получить guid
в checkExistence()
?
Обратный звонок будет 'function() {checkExistence (guid); } 'и принять' guid' в качестве аргумента. – Rayon
Почему бы просто не добавить параметр? –