gpt4 book ai didi

html - db.transaction,先发生错误回调还是成功回调

转载 作者:行者123 更新时间:2023-12-03 04:34:39 25 4
gpt4 key购买 nike

我正在构建一个 Phone Gap 应用程序,并按照此 documentation 中的示例使用 db.transaction 函数。 。我在 db.transaction 函数中看到一些关于参数顺序的冲突信息,我希望有人能够解释我所看到的差异。

下面的例子中,错误回调是第二个参数,成功回调是第三个参数:

function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}

function errorCB(err) {
alert("Error processing SQL: "+err);
}

function successCB() {
alert("success!");
}

var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(populateDB, errorCB, successCB);

这是另一个示例,其中成功回调是第三个参数,错误回调是第四个参数。

function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}

function queryDB(tx) {
tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}

function querySuccess(tx, results) {
var len = results.rows.length;
console.log("DEMO table: " + len + " rows found.");
for (var i=0; i<len; i++){
console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i).data);
}
}

function errorCB(err) {
console.log("Error processing SQL: "+err.code);
}

function successCB() {
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(queryDB, errorCB);
}

最佳答案

不,这里没有冲突。'transaction' 是 'Database' 对象的方法,它的参数如 'query,errorCallback,successCallback'。

另一方面; “executeSql”是“Transaction”对象的方法,它的参数如下'查询,IDONTKNOW,成功回调,错误回调'。

所以文档说的是事实,但我也不明白为什么回调参数的序列也不同。我认为不同的人设计了该对象。

关于html - db.transaction,先发生错误回调还是成功回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com