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;是怎么回事呢?
3 个回复
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
查询是异步请求:可以用Promise封装,类似下面:
g***@foxmail.com
请问能不能帮我写一个调用的例子呀 我也遇到了这个问题 卡好几天了 小白一枚
2019-10-24 22:28
9***@qq.com
我也想知道