gpt4 book ai didi

javascript - 使用AJAX数据更新SQLite : how to handle two asynchronous calls

转载 作者:行者123 更新时间:2023-11-28 08:57:27 24 4
gpt4 key购买 nike

我正在尝试使用通过 AJAX 获取的一些 JSON 数据来更新 SQLite。这是我迄今为止的进展。问题是这个函数总是返回 false。我知道这是因为db.transaction的第二次异步执行。我该如何解决这个问题?提前致谢!

function updateDb(url) {
$.ajax({url: url,
type: "get",
dataType: "jsonp",
async: true,
success: function (result) {
ajax.parseJSONP(result);
},
error: function (request,error) {
console.error('Network error while fetching IR JSON!');
}
});
var ajax = {
parseJSONP:function(result){
var db = window.openDatabase("Test", "1.0", "Test DB", 100000);
db.transaction(populateDB, errorCB, successCB);

function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS testtable;');
tx.executeSql('CREATE TABLE IF NOT EXISTS testtable (id NUMERIC PRIMARY KEY, testtext TEXT)');
$.each( result, function(i, row) {
tx.executeSql('INSERT INTO testtable (id, testtext) VALUES (' + row[0] + ',\'' + row[1] + '\';');
});
}

function errorCB(err) {
console.error("Error processing SQL: "+err.message);
return false;
}

function successCB() {
console.info("Updating DB successful!");
return true;
}
}
}
}

最佳答案

好的,我通过使用两个回调解决了这个问题,一个用于 parseJSONP,一个用于成功回调。我认为这是一个有效的解决方案,但是,我真的很讨厌仅通过回调进行导航。

关于javascript - 使用AJAX数据更新SQLite : how to handle two asynchronous calls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252700/

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