データベーストランザクションを実行し、テキストボックスやボタンなどを作成するための配列要素を返すjsを作成したいため、起動時にデータベースからデータを取得するアプリを作成しています。elementArray=fetchdata();のようにオンロードで関数を呼び出すと、 そして、jsのdb.transactionはデータベースからデータをフェッチし、配列を返しますが、jsで関数を呼び出すと、関数を呼び出して実行を開始しますが、db.transactionが完了するのを待たず、さらに実行を開始します.I db.transaction が操作を完了するまで待機してから、さらに操作を実行します。データベースからデータを取得するために作成した dynamic_form.js ファイルは次のとおりです。
var elementArray=new Array();
function fetchdata(){
db.transaction(function(tx){
tx.executeSql("Select * from contactTable",[],function(tx,results){
for(var i=0;i<results.rows.length;i++){
var element=new Object();
element.Name=results.rows.item(i).name;
element.Lastname=results.rows.item(i).last_name;
element.Mobile=resulst.rows.item(i).mobile_no;
// ****and so on***//
elementArray[i]=element;
}
return elementArray;
});
});}
jsファイルをロードするhtmlファイルのコードは次のとおりです。
function dbTranscation()
{
console.log("$ function");
var elementArray=fetchdata();
// after this it sould call this function
createfield();
}