离子2中的链条交易



我有链接查询(更新后选择(,但是在ionic2中,所有sqlite交易都在使用回调我已经知道我们可以在中执行第二个查询,然后在第一个Promise查询中,但是如果我有截链,则很难读取代码。如何通过等待第一个Promise 而不是在然后中执行第二个查询?还是喜欢实施等待?或者也许还有其他解决方案?

现在有我的代码

  this.sqlite.create({
  name: 'qc_checking_subkon.db',
  location: 'default'
  }).then((db: SQLiteObject) => {
      var sql = 'UPDATE t_detail SET qty_inspek='0' WHERE curr_qty_inspek > ?';            
      db.executeSql(sql ,['2'])
    .then(res => {
         var sql2 = 'SELECT * FROM t_detail'
        db.executeSql(sql2,[])
        .then(res2 => {  
         }
    ,(err)=>{
        alert('Unable to execute sql: '+JSON.stringify(err));
  }) 
    .catch(e => console.log(JSON.stringify(e)));
  })

我想使sql2 = 'SELECT * FROM t_detail'等待第一个查询,而无需写入然后

而不是嵌套您的诺言,如果您愿意,您可以考虑将它们链接起来。链条至少在所有then的级别上都处于同一水平而不是嵌套。

    db: SQLiteObject; // ADDED
    this.sqlite.create({
        name: 'qc_checking_subkon.db',
        location: 'default'
    })
        .then((db: SQLiteObject) => {
            this.db = db; // ADDED
            var sql = 'UPDATE t_detail SET qty_inspek='0' WHERE curr_qty_inspek > ?';
            return db.executeSql(sql, ['2']); // <== NOTE THE RETURN HERE
        })
        .then(res => {
            var sql2 = 'SELECT * FROM t_detail'
            this.db.executeSql(sql2, []) // ADDED 'this'
                .then(res2 => {
                }
                    , (err) => {
                        alert('Unable to execute sql: ' + JSON.stringify(err));
                    })
                .catch(e => console.log(JSON.stringify(e)));
        });

相关内容

  • 没有找到相关文章

最新更新