javascript - 开玩笑 - 模拟超时后返回的 Promise
问题描述
我有这个模块
function waitTimeout(ms: number) {
return new Promise((resolve) => setTimeout(() => resolve(true), ms));
}
async function verifyUserRecord(userId) {
await waitTimeout(10000);
await <some other method call>
/////////////// more logic /////////////
}
我如何使用 jest 来模拟对 的调用waitTimeout
?意思是模拟setTimeout
和Promise.resolve
?
我尝试使用:
jest.useFakeTimers();
jest.runAllTimers();
jest.runAllTicks();
jest.advanceTimersByTime(60000);
jest.runOnlyPendingTimers();
但他们都没有工作,我不断得到:
Async callback was not invoked within the 20000 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Error:
请指教。
解决方案
推荐阅读
- google-apps-script - 如何检查值是否存在于谷歌电子表格中或不使用应用程序脚本
- laravel - 如何在表单中添加旧数据以选择输入(由 vue.js 循环)
- ios - UICollectionViewCompositionalLayout:以小数组宽度控制组中的项目数
- python - python字符串中的逻辑运算符
- rust - Piston-2DGraphics(Rust)中的文本换行和文本背景颜色?
- pyspark - 将 Parquet 文件作为 PySpark 中 Dataframe 的输出写入时,如何在 HDFS 中创建元数据文件?
- c - fread get 存储在堆栈中的什么位置?
- c# - Xero Accounting Sdk Core:身份验证错误
- python - Python:如何使用 scipy 稀疏矩阵实现包含二维数组的隐式方程?
- reactjs - 当我安装反应应用程序时,反应应用程序出现 rmdir 错误