我正在使用websql数据库成功存储我的记录,在阅读它时,它会在第二次返回undefined时第二次返回实际值。
myDB.transaction(function(transaction) {
transaction.executeSql('SELECT * FROM tempTelemedicine', [], function(transaction, output) {
if (output != null && output.rows != null) {
for (var i = 0; i < output.rows.length; i++) {
var record = output.rows.item(i);
this.date = record.date;
this.firstName = record.firstName;
this.lastName = record.lastName;
this.address = record.address;
this.clinic = record.clinic;
this.mobile_no = record.mobile_no;
this.age = record.age;
this.age_afa = record.age_afa;
this.number_oa = record.number_oa;
this.number_oailsm = record.number_oailsm;
this.months_sla = record.months_sla;
this.sex = record.sex;
this.predisposing = record.predisposing;
this.color = record.color;
this.stiff = record.stiff;
this.shaking = record.shaking;
this.tongue = record.tongue;
this.incontinent = record.incontinent;
this.head = record.head;
this.eyes = record.eyes;
this.communicates = record.communicates;
this.weakness = record.weakness;
this.comment = record.comment;
alert("DATA SET");
$('#lbUsers').append('<br>'+"new data"+' '+ record.patientId
+ ' ' + record.date + ' ' + record.firstName + ' ' + record.lastName
+ ' ' + record.address + ' ' + record.clinic + ' ' + record.mobile_no
+ ' ' + record.age + ' ' + record.age_afa + ' ' + record.number_oa
+ ' ' + record.number_oailsm + ' ' + record.months_sla + ' '
+ record.sex + ' ' + record.predisposing + ' ' + record.color
+ ' ' + record.stiff + ' ' + record.shaking + ' ' + record.tongue
+ ' ' + record.incontinent + ' ' + record.head + ' ' + record.eyes
+ ' ' + record.communicates + ' ' + record.weakness + ' ' + record.comment);
}
}
});
}
答案 0 :(得分:3)
这是因为JavaScript的异步执行模式 Web浏览器和JavaScript共享一个用于呈现和处理代码的线程,在这种情况下,变量在被赋值之前使用。