我试图了解这里发生了什么。我试图更改在函数范围之外定义的变量。我来自Java背景,这组代码让我感到惊讶
var dayIsEmpty = false;
selectByDate.on('end', function(result) {
if(result.rowCount == 0) {
console.log('isEmpty');
dayIsEmpty = true;
} else {
console.log('isNotEmpty');
dayIsEmpty = false;
}
console.log('isEmpty?' + dayIsEmpty);
console.log('Finished Select from UsageByDay');
});
console.log('outside of block isEmpty?' + dayIsEmpty);
我注意到了
outside of block isEmpty? false
在调用函数中定义的任何控制台输出之前调用。首先......发生了什么?其次,你将如何解决这个问题。