Javascript 从sqlite数据库获取值并插入到数组中

Javascript 从sqlite数据库获取值并插入到数组中,javascript,sqlite,asynchronous,cordova,Javascript,Sqlite,Asynchronous,Cordova,我制作了一个函数myFunction,它执行简单的任务,即从sqlite数据库检索数据并将其保存在一个易于使用的数组中。此函数应遵循以下步骤来实现我的功能 从数据库检索数据 将其保存到数组中 返回数组 但它在这个序列中执行这些步骤;3,1,2,所以我没有得到数据,因为它返回时没有得到数据 e、 g 函数myFunction(){ var-ret; var-arr=[]; 数据库事务(功能(trans){ trans.executeSql('SELECT*FROM-tblname',[], 功能(

我制作了一个函数myFunction,它执行简单的任务,即从sqlite数据库检索数据并将其保存在一个易于使用的数组中。此函数应遵循以下步骤来实现我的功能

  • 从数据库检索数据
  • 将其保存到数组中
  • 返回数组
  • 但它在这个序列中执行这些步骤;3,1,2,所以我没有得到数据,因为它返回时没有得到数据

    e、 g

    函数myFunction(){
    var-ret;
    var-arr=[];
    数据库事务(功能(trans){
    trans.executeSql('SELECT*FROM-tblname',[],
    功能(事务、结果){
    if(result!=null&&result.rows!=null){
    对于(var i=0;i

    在上述代码中,警报2显示在警报1之前。。。。。这就是它不在数组中返回值的原因。这个问题可能是因为JS中的sqlite是异步的。

    可能是异步函数的重复。如果不能从异步函数返回这样的值,则必须使用回调。@PaulS。谢谢你的回复。。。有什么方法可以使它同步。。。我在ajax函数中也遇到了同样的问题,但我在那里设置了async:false,然后它就可以正常工作了……我使用ajax函数从URL获取内容。。。关于这一点,请帮助我。据我所知,没有。您很可能需要重构代码才能在异步环境中工作