如何使 quick.db 异步读取
Posted
技术标签:
【中文标题】如何使 quick.db 异步读取【英文标题】:how to make quick.db read async 【发布时间】:2021-09-24 06:41:03 【问题描述】:我想让这个读取调用异步。它应该输出到控制台“完成”,然后“完成”。
但脚本首先等待完成循环。为什么它不起作用?
const db = require('quick.db');
var balance = null;
var items = null;
final();
console.log('finish');
async function final()
var res = await test();
console.log('done');
async function test()
return new Promise((resolve, reject) =>
for(var i=0; i<10000; i++)
balance = db.get('userInfo.balance') // -> 1000
items = db.get('userInfo.items') // ['Sword', 'Watch']
resolve(true);
);
【问题讨论】:
【参考方案1】:所以我刚刚复制并粘贴了您的代码,它的工作方式与您描述的一样。它打印“完成”,然后“完成”。我不确定你的问题是什么。但是,我对您的代码有一个疑问:为什么要使用 async 并隐式返回一个新的 Promise?
除了上述之外,您还尝试从数据库中读取一些值,并且之前没有设置它们。我编辑了你的代码:
const db = require('quick.db');
var balance = null;
var items = null;
db.set('userInfo', difficulty: 'Easy' );
db.add('userInfo.balance', 1000);
db.push('userInfo.items', 'Sword');
db.push('userInfo.items', 'Watch');
final();
console.log('finish');
async function final()
var res = await test();
console.log(`Balance: $balance | Items: $items`);
console.log('done');
async function test()
for (var i = 0; i < 10000; i++)
balance = db.get('userInfo.balance'); // -> 1000
items = db.get('userInfo.items'); // ['Sword', 'Watch']
它解决了你的问题吗?
【讨论】:
以上是关于如何使 quick.db 异步读取的主要内容,如果未能解决你的问题,请参考以下文章