[英]executing sqlite query asynchronous
is there any way to execute sqlite query in an asynchronous way in javascript ??? 有没有办法在javascript中以异步方式执行sqlite查询???
and if not , how is handling the error of synchronous execution way in the code below!? 如果没有,如何在下面的代码中处理同步执行方式的错误!
var db = openConn('instabartar' , '1.0' , 'Insta Bartar', 200000);
db.transaction(insertUserInformation , errorDB ,successDB );
function insertUserInformation(tx){
tx.executeSql('CREATE TABLE IF NOT EXISTS USERINFO (ID UNIQUE, USERNAME , FULLNAME , PROFILEPIC , ACCESS_TOKEN)');
}
function openConn(databaseName, dbVersion, dbShowName, dbSize){
return window.openDatabase(databaseName, dbVersion, dbShowName, dbSize);
}
function errorDB(tx, err) {
console.log("Error processing SQL: " , err);
return err;
//alert("Error processing SQL: " + err);
}
function successDB() {
console.log("success!" );
return "success";
}
You could use promises and timeout. 您可以使用Promise和Timeout。 So, something like this might work for you ?
那么,类似的事情可能对您有用? :
:
var q = require('q');
function insertUserInformation(tx){
var def = q.defer();
setTimeout(function() {
tx.executeSql('CREATE TABLE IF NOT EXISTS USERINFO (ID UNIQUE,USERNAME , FULLNAME , PROFILEPIC , ACCESS_TOKEN)');
if (tx.error) {
def.reject(tx.error.status);
}
else {
def.resolve();
}
}, 0);
return def.promise;
}
insertUserInformation(insertUserInformation).then(successDB, errorDB);
You could learn more about promises here: https://github.com/dscape/nano 您可以在此处了解有关承诺的更多信息: https : //github.com/dscape/nano
I found my own answer ; 我找到了自己的答案; we can execute the code synchronous and handle error same as below
我们可以同步执行代码并处理如下错误
var defferd = $q.defer();
function insertUserInformation(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS USERINFO (ID UNIQUE, USERNAME , FULLNAME , PROFILEPIC , ACCESS_TOKEN)');
}
function openConn(databaseName, dbVersion, dbShowName, dbSize){
return window.openDatabase(databaseName, dbVersion, dbShowName, dbSize);
}
function errorDB(tx, err) {
defferd.reject(err);
}
function successDB() {
defferd.resolve(result)
}
return defferd.promise;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.