l***@sina.com
l***@sina.com
  • 发布:2019-08-23 16:27
  • 更新:2020-04-17 15:35
  • 阅读:2038

sqlite selectSql

分类:HTML5+

function selectSQL(){

var datas=[];
plus.sqlite.selectSql({
name: 'first',
sql: 'select * from database',
success: function(data){
console.log('selectSql success: ');
datas=data;

    },  
    fail: function(e){  
        console.log('selectSql failed: '+JSON.stringify(e));  
    }  
});  

return datas;
}
查询数据成功后,怎么data数据返回给其他方法使用? 这样赋值不起作用,datas的长度是0;是怎么回事呢?

2019-08-23 16:27 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com - WEB全栈工程师/技术经理

娃娃们,通过then的状态传递可以实现回调函数,结合上面老伙计给个方案:
function executeSelect (tableName, offset) {
var promise = new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: DB_NAME,
sql: select * from ${tableName} limit 10 offset ${offset},
success: function (res) {
resolve(res)
},
fail: function (e) {
console.log('selectSql failed: ' + JSON.stringify(e))
reject(e)
}
})
});
return promise;
}
调用方式:
executeSelect(tableName, offset).then(res => {
for(var i in res){
//这里是循环体,下面靠你们自己搞搞了
}
});

x***@dingtalk.com

x***@dingtalk.com

查询是异步请求:可以用Promise封装,类似下面:

export function executeSelect (tableName, offset) {  
  return new Promise((resolve, reject) => {  
    plus.sqlite.selectSql({  
      name: DB_NAME,  
      sql: `select * from ${tableName}  limit 10 offset ${offset}`,  
      success: function (res) {  
        resolve(res)  
      },  
      fail: function (e) {  
        console.log('selectSql failed: ' + JSON.stringify(e))  
        reject(e)  
      }  
    })  
  })  
}
  • g***@foxmail.com

    请问能不能帮我写一个调用的例子呀 我也遇到了这个问题 卡好几天了 小白一枚

    2019-10-24 22:28

9***@qq.com

9***@qq.com

我也想知道

该问题目前已经被锁定, 无法添加新回复