首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用`jest.useFakeTimers()`时,为什么`setImmediate`不会无限期超时?

使用jest.useFakeTimers()时,setImmediate不会无限期超时的原因是因为jest.useFakeTimers()会替换掉原生的定时器函数,包括setTimeoutsetIntervalsetImmediate。在使用jest.useFakeTimers()后,所有的定时器函数都会被模拟实现,而不是真正的等待一段时间后执行。

在模拟的定时器中,setImmediate会被立即执行,而不需要等待真正的时间间隔。这是因为setImmediate是一个异步函数,它会在当前事件循环的末尾被调用,而不会像setTimeout一样需要等待一段时间。

当使用jest.useFakeTimers()时,所有的定时器都会被立即执行,包括setImmediate。因此,setImmediate不会无限期超时,而是会立即执行。

需要注意的是,jest.useFakeTimers()只是在测试环境中模拟定时器行为,以便更好地控制测试的执行顺序和时间。在实际的生产环境中,定时器函数的行为仍然是按照原生的方式执行的。

相关搜索:使用Indy时连接不会超时超时-使用jest.useFakeTimers(‘现代’)和jest.setSystemTime()时未调用异步回调当使用usingServer时,Selenium webdriver超时不会设置为什么此when客户端post代码在没有网络连接时不会超时?为什么TypeScript在使用as类型时不会发出错误?在Java 7中使用方法重载时,为什么autoboxing不会覆盖varargs?为什么我的v-if在Vue中使用情态动词时不会触发?为什么在此react代码中释放外部div时,mouseup事件不会触发(使用window.addEventListener)为什么使用useRef钩子定义的计数器在每次渲染时都不会递增?为什么我的文本视图在设置文本时不会创建换行符,即使使用\n也是如此?当Pcap文件太大时,在c#中通过cmd使用TShark不会终止。为什么会这样呢?在Eclipse中使用Mylyn时,为什么任务上下文元素不会显示在导航器视图中?为什么我的注释标注不会出现?仅当使用自定义图像作为图钉时,标注才有效在片段中使用图像时,图像会显示在某些页面上,但不会显示在其他页面上。为什么?在我的Todo ReactApp中,我使用了flux。使用useEffect时,我添加了一个侦听器,但是当Todostore更新时,页面不会重新呈现。为什么不行?为什么在使用Knex.js/Objection时,我的所有数据都默认为空?我根本不会通过useNullAsDefault为什么在使用angular中的route.navigate进行路由时,父组件中注入的服务不会传递给子组件为什么在使用List迭代器的next方法时会出现不兼容的类型错误,而在使用List的get方法时却不会呢?当我在计时器中使用xlApp.CutCopyMode时,我的应用程序不会关闭。这一切为什么要发生?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Java并发编程之CompletableFuture

    CompletableFuture 是 Java 8 中引入的一个类,用于支持异步编程和非阻塞式的操作。它提供了一种简洁的方式来处理异步计算的结果。使用 CompletableFuture,可以以函数式的方式组合多个异步操作,从而更容易地编写并发代码。 CompletableFuture,它不仅实现了Future接口,还提供了丰富的API来支持异步编程。开发者可以更优雅地处理异步任务的执行、结果处理和异常处理。 CompletableFuture提供了诸如thenApply、thenAccept、thenCombine等方法,可以轻松地将多个异步任务串联或并行执行,并在任务完成后进行回调处理。 CompletableFuture还支持自定义线程池,使得开发者可以灵活地管理线程资源,提高程序的并发性能和可维护性。

    01

    Java线程的6种状态及切换(透彻讲解)

    1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。 3.阻塞(BLOCKED):表示线程阻塞于锁。 4.等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。 5.超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。6. 终止(TERMINATED):表示该线程已经执行完毕。

    01
    领券