Javascript 为什么错误方法先调用成功方法?
我正在尝试在ionic+angular js项目中制作sqlite的简单演示。我正在将数据插入数据库中。但我的错误函数调用首先成功,为什么? 按照步骤操作 一,Javascript 为什么错误方法先调用成功方法?,javascript,angularjs,angularjs-directive,angularjs-scope,ionic-framework,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Ionic Framework,我正在尝试在ionic+angular js项目中制作sqlite的简单演示。我正在将数据插入数据库中。但我的错误函数调用首先成功,为什么? 按照步骤操作 一, 按左下角的按钮显示弹出屏幕。在弹出屏幕上输入文本。按“添加”按钮后,我将在数据库中插入数据。但是,在先插入错误警报然后成功插入时,为什么 这是我的密码 app.factory('sqlservice',函数($q){ var-db; var任务=“”; var删除任务; 函数createDB(){ 试一试{ db=window.o
- 按左下角的按钮显示弹出屏幕。在弹出屏幕上输入文本。按“添加”按钮后,我将在数据库中插入数据。但是,在先插入错误警报然后成功插入时,为什么
app.factory('sqlservice',函数($q){
var-db;
var任务=“”;
var删除任务;
函数createDB(){
试一试{
db=window.openDatabase(“ATMSDB”、“1.0”、“ATMSDB”、10*1024*1024);
数据库事务(功能(tx){
tx.executeSql('CREATE TABLE“Cases”('ID“INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL”,“CaseName”VARCHAR NOT NULL));
})
}捕捉(错误){
警惕(err);
}
}
函数insertDataOnDataBase(testCaseName){
返回promiseQuerry(“插入案例(案例名称)值(“+testCaseName+”)”),defaultResultHandler,defaultErrorHandler)
}
功能承诺(查询、成功、错误){
var defferrd=$q.defer();
数据库事务(功能(tx){
tx.executeSql(查询,[],成功(defferrd),错误(defferrd));
})
回报承诺;
}
函数defaultResultHandler(defferrd){
返回函数(发送、结果){
警惕(“成功”)
var len=result.rows.length;
var输出结果=[];
对于(var i=0;i)您首先获得错误警报,因为您的警报不在返回的回调函数中,就像您的成功警报isok i获得它一样!!但是为什么它会创建两个id列呢
app.factory('sqlservice',function($q){
var db;
var task='';
var deleteTask;
function createDB(){
try{
db=window.openDatabase("ATMSDB","1.0", "ATMSDB", 10*1024*1024);
db.transaction(function(tx){
tx.executeSql('CREATE TABLE "Cases" ("ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "CaseName" VARCHAR NOT NULL )');
})
}catch (err) {
alert(err);
}
}
function insertDataOnDataBase(testCaseName){
return promiseQuerry("INSERT INTO Cases (CaseName) VALUES ('"+testCaseName+"')",defaultResultHandler,defaultErrorHandler)
}
function promiseQuerry(query,success,error){
var defferrd =$q.defer();
db.transaction(function(tx){
tx.executeSql(query,[],success(defferrd),error(defferrd));
})
return defferrd.promise;
}
function defaultResultHandler(defferrd){
return function(tx,result){
alert("success")
var len=result.rows.length;
var output_results = [];
for (var i=0; i<len; i++){
var t = {'ID':results.rows.item(i).ID,'CaseName':results.rows.item(i).CaseName};
output_results.push(t);
}
defferrd.resolve(output_results);
}
}
function defaultErrorHandler(defferrd){
alert("error")
return function(tx, results) {
var len = 0;
var output_results = '';
defferrd.resolve(output_results);
}
}
return{
setup: function() {
return createDB();
},
insertData:function(testCaseName){
return insertDataOnDataBase(testCaseName);
}
}
})