问题描述
有人可以告诉我这段代码为什么起作用:
const articleUpdated = async(pool: Pool,author: String): Promise<void> => {
const query = {
text:
'UPDATE articles SET end_time=Now(),author=$1',values: [author],}
pool.query(query)
.then(result => { console.error('Test'); result.rows })
.catch(error => console.error(error))
}
此挂起时:
const articleUpdated = async(pool: Pool,values: ['test'],}
let { rows } = await pool.query(query)
console.log(rows)
}
上面的代码在正常应用中运行没有问题。但是,当我通过Mocha编写测试代码时,第一个包含query / then / catch的代码片段可以正常工作,并且测试顺利完成。但是,如果我使用async / await将代码更改为代码段2,则测试执行将挂在await pool.query(query)
行。
该代码不是直接通过Mocha调用的,而是通过其他模块之一调用的,而这些模块依次调用了上面的代码。我逐行执行测试,每次执行挂起时,await pool.query(query)
都将其挂起。
我的猜测是,可能是某些承诺未返回或未完成-或更新查询未更新任何记录。不确定。
就像我之前提到的,上面的代码是通过集成测试(在父方法上使用await
)调用的。调用与运行应用程序时的调用完全相同。
对于故障排除的任何提示,想法或建议,我们将不胜感激。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)