使用Indexed DB时函数参数传递失效问题求助
解决idb库中使用函数参数查询IndexedDB无结果的问题
你的代码存在一个关键语法错误,导致参数无法正常生效:
问题根源
函数内部使用了await,但没有将函数声明为async,这会触发语法错误,使得后续的数据库查询代码无法正确执行,自然参数boardNo也无法被get()方法正确接收。
修复后的代码
async function getBoard(boardNo) { const db = await openDB(dbName, version); // 查询操作建议使用readonly事务,无需readwrite return db.transaction(['board'], 'readonly').objectStore('board').get(boardNo); }
补充说明
- 只有
async函数内部才能使用await关键字,否则会抛出SyntaxError,这就是你直接传数字或用局部变量能生效的原因——测试时你大概率是在支持await的上下文(比如另一个async函数、ES模块顶级作用域)中运行的,没有触发语法错误。 - 查询操作不需要
readwrite事务权限,改用readonly可以减少数据库资源占用,提升性能。
内容的提问来源于stack exchange,提问作者qwe123
相关产品推荐
相关产品推荐

