Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么错误方法先调用成功方法?_Javascript_Angularjs_Angularjs Directive_Angularjs Scope_Ionic Framework - Fatal编程技术网

Javascript 为什么错误方法先调用成功方法?

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

我正在尝试在ionic+angular js项目中制作sqlite的简单演示。我正在将数据插入数据库中。但我的错误函数调用首先成功,为什么? 按照步骤操作 一,

  • 按左下角的按钮显示弹出屏幕。在弹出屏幕上输入文本。按“添加”按钮后,我将在数据库中插入数据。但是,在先插入错误警报然后成功插入时,为什么
这是我的密码

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);
            }
        }
})