0

私は websql データベースを使用してレコードを正常に保存していますが、それを読み戻すと、最初は undefined が返され、2 回目は実際の値が返されます。

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);
      }
    }
  });
}
4

1 に答える 1

3

これは、JavaScript の実行が非同期モードであるためです。
Web ブラウザーと JavaScript は、コードのレンダリングと処理のために 1 つのスレッドを共有します。この場合、値が割り当てられる前に変数が使用されます。

于 2012-10-05T10:52:44.230 に答える