我正在try 创建一个函数,该函数判断数据库中有多少记录,并将数字发送给变量:

var records = -1;

async function howManyRecords() {
    let myPromise = new Promise(function (resolve) {

        DB.transaction(function (tx) {
            tx.executeSql('SELECT count(*) AS mycount FROM DemoTable', [], function (tx, rs) {
                records = rs.rows.item(0).mycount;
                resolve();
            },);
        });
    });
    await myPromise;
    console.log("records from promise function: " + records);
    return myPromise;
}

然后我想在其他功能中使用该号码,例如当设备就绪时在控制台日志(log)中显示:

onDeviceReady.then(function () {
    howManyRecords();
    console.log("after calling function records are: " + records);
}

HowManyRecords函数正确地计算记录,但变量记录不正确:

IMG: after calling function records are: -1 // records from promise function: 5

我真的需要一些帮助,我对这个话题是新手,被困在这里很长时间了,无法继续下go . 我用的是Cordova Sqlite.

推荐答案

试试这个:

onDeviceReady.then(async function () {
await howManyRecords();
console.log("after calling function records are: " + records);}

Javascript相关问答推荐

我可以使用querySelectorAll获取单元格索引吗?

使用expressjs加载Nuxt版本=3.9.0(自定义服务器)

复合密钥查找在mongoDB中未按预期工作

我可以在useState中调用函数并使用其数据吗

验证嵌套 colored颜色 代码的结果

将音频记录从js发送到activx-web服务器以保存到磁盘

强制执行useStatego struct 化变量[foo,setFoo]的命名约定?

添加/删除时React图像上传重新渲染上传的图像

Flisk和JS错误:未捕获的Syntax错误:意外的令牌'<'

将状态向下传递给映射的子元素

判断表格单元格中是否存在文本框

用JavaScript复制C#CRC 32生成器

在JS中拖放:检测文件

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

TypeError:无法分解';React2.useContext(...)';的属性';basename';,因为它为空

在Reaction中的handleSubmit按钮内,useSelector值仍然为空

让chart.js饼图中的一个切片变厚?

Nextjs 13.4 Next-Auth 4.2登录(&Quot;凭据&,{});不工作

按什么顺序接收`storage`事件?

如何使用Astro优化大图像?