在包含tx.executeSql的每个函数之后显示警报

Show alert after each function that contains tx.executeSql

本文关键字:之后 函数 显示 包含 tx executeSql      更新时间:2023-09-26

嗨,我在javascript:中有这段代码

db.transaction(function (tx) {
    tx.executeSql('DELETE FROM table');
    var querys = texto.split(''n');
    $.each(querys, function(i,elem) {
        tx.executeSql(querys[i],[],null,null);
    });
    alert("DATA LOADED");
});

但我的问题是,在tx.executeSql进程尚未完成插入记录之前就显示了警报。。。请帮帮我!!!

您可以尝试将查询包装在$.when中,如下所示。

db.transaction(function (tx) {
    tx.executeSql('DELETE FROM table');
    var querys = texto.split(''n');
    $.when(
    $.each(querys, function(i,elem) {
        tx.executeSql(querys[i],[],null,null);
    })).then(function(){;
          alert("DATA LOADED");
    });
});

您也可以使用.done而不是.then

有关更多信息,请访问此链接

请查看它是否对您有帮助。使用executeSql成功和失败回调函数。

db.transaction(function (tx) {
    tx.executeSql('DELETE FROM table');
    var querys = texto.split(''n');
    var rowslength = querys.length;
    var insertedlength = 0;
    var callback = function(){
        if(insertedlength == rowslength){
        alert("DATA LOADED");
        }
    };
    $.each(querys, function(i,elem) {
        tx.executeSql(querys[i],[],function(){
        insertedlength++;
        callback();
        },function(){
        insertedlength++;
        callback();
        });
    });
});