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

使用Jest测试包含setTimeout调用的函数踩坑记录

前两天给一个包含setTimeout调用的函数写单元测试,在使用fake timer的时候遇到了问题,记录一下。...这样一来,这个测试用例的表现就不符合预期了,我们的runAllTicks应该能够把catch回调执行完毕才对。...在Jest的issue列表中,我搜到了这样一条issue: Promises use their own micro-queue for resolution, which Jest has no control...因此,最后我选择了另一种断言方案: const flushPromises = () => new Promise(resolve => setImmediate(resolve)); test('enqueueJob...结语 之前精力都在业务代码的编写,很少接触到JS事件队列的知识,这次编写测试用例时遇到的问题让我有机会了解了JS事件队列里的基本概念和原理,还是收获很大的。

6.9K60

SQL分组查询后取每组的前N条记录

后面在尝试 GROUP BY 使用的各种方式都不能实现,最后在查阅相关资料后找到了实现的解决方法。 下面,我将模拟一些实际的测试数据重现问题的解决过程。...形如“select * from info order by views asc limit 0,3 ”,这条SQL就是取info表中的前3条记录。...但是当你仔细阅读我们的题目要求,你会发现:“它是让你每个类型下都要取浏览量的前3条记录”。 一种比较简单但是粗暴的方式就是在Java代码中循环所有的资讯类型,取出每个类型的前3条记录,最后进行汇总。...要计算出某条资讯信息的在同资讯分类下所有记录中排第几名,换成算出 有多少条浏览量比当前记录的浏览量高,然后根据具体的多少(N)条+1就是N+1就是当前记录所在其分类下的的排名。...就正如案例中求记录的所在分类的排名,把其对等的“转换成有多少条同类别的记录的浏览量比当前记录的大(count聚合函数)” 问题马上就迎刃而解了。 (完)

26.8K32
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一条这样的SQL语句最多能查询出来多少条记录?

    前言 今天突发奇想,一条这样的 SQL 语句【SELECT * FROM user】能查询出多少条记录?...  1、3 点好理解,这也同时解释了,如果你发送的一条 SQL 语句特别大可能会执行不成功的原因,尤其是insert update 这种,单个 SQL 语句不是没有上限的,不过这种情况一般不是因为 SQL...因为我们一条记录的大小就是 8K 多了,所以肯定超过 1024byte。可见文档的说明是对的,max_allowed_packet确实是可以约束单行记录大小的。...---- 答案   文章写到这里,其实答案已经逐渐浮出水面了,“一条 SQL 最多能查询出来多少条记录?”...写在最后的话   本文花费大量时间介绍了一条查询SQL语句最多能查询出多少条记录,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!

    36840

    FBI的恐怖分子秘密观察名单曝光,包含190万条记录

    安全研究员 Bob Diachenko 发现了一个秘密恐怖分子观察名单,名单中包含的190万条信息在互联网上从2021年7月19日到8月9日,曝光了大约三周时间。...7月,Diachenko 发现了一个不安全的 Elasticsearch 集群,通过分析,发现其中包含用户个人敏感信息记录。...Diachenko 在 LinkedIn 上写道,暴露的 Elasticsearch 集群包含190万条记录,不清楚它存储了多少完整的 TSC 观察列表,但有理由怀疑整个列表已经曝光,监视列表中的每条记录都包含以下部分或全部信息...2021年7月19日,搜索引擎 Censys 和 ZoomEye 将暴露的服务器编入索引,令人担忧的是有专家在巴林 IP 地址上发现了 TSC 数据库的副本。...在撰写本文时,尚不清楚曝光的三周时间内,不安全的服务器是由美国政府机构、第三方直接操作,还是最由获得它的不法分子在操作。

    42020

    工作记录二: 记录一次简单的SQL优化过程

    在工作时, 和同事一起遇到了一个关于SQL优化方面的问题, 现在将解决过程记录如下 项目缺陷描述 ? 项目分析思路 首先F12进入开发者模式, 查看最费时的请求 ?...然后利用restful风格接口工具集( RestfulToolkit ) : 用于将前端请求的url与后端的controller对应. 安装后的快捷键( Ctrl+\ ) ?..., 可以看到后端的响应速度得到了很大的优化 ?...SQL优化思路总结 ①找出影响性能的关键所在 ②找出关键代码 ③找出关键代码执行的sql语句 ④初步分析优化sql语句,仅仅只查询主信息 ⑤通过使用explain关键字分析再次优化SQL语句...⑥根据主信息的信息去并行查询不相互依赖的附属信息, 然后在代码中去组装这些信息 其他解决方法: 开启慢查询, 可以在mysql目录bin下有个慢查询日志里看到SQL执行情况 在where后面建立一个组合索引

    41520

    关于ThinkPHP5.1+的Log无法记录SQL调试记录的小经历

    之前我的大部分项目都是使用ThinkPHP5.0以及ThinkPHP3.2,对于框架提供的日志记录和日志配置都差不多,然后使用ThinkPHP5.1的时候就吃瘪,花了十几分钟才好,所以写一下防止后面忘记了再踩坑...日志记录在5.1以前的项目中记录个人调试的日志,都是使用use think\Log; 然后使用Log::write()。...但是有时不会出现,但是想调试SQL以及SQL的查询速度,就需要开启日志记录,尽量不要配置保存目录,默认在runtime下就可以,也不是因为自定义目录的写入权限问题,所以一切默认就好,先解决问题后面再研究问题原因...return [ // 日志记录方式,支持 file socket 或者自定义驱动类 'type' => 'File', 'file_size' =>2097152,'apart_level...' => ['sql','error'], //日志的时间格式,默认是` c ` 'time_format' =>'c'];当开发阶段结束,不需要除了error以外级别的日志,可以在"apart_level

    22110

    100w条记录分页,可以有多快?—— DataReader分页与SQL语句分页的对比测试(在线演示)

    理论上就不说了,直接用测试说话。   1、100w条记录,使用SQL语句(max方法)分页,PostBack方式,GridView显示数据。...(第一页需要统计总记录数,所以会有点慢)http://demo.naturefw.com/Nonline/QuickPager/200w/GridView.aspx   2、100w条记录,使用DataReader...测试说明:   1、使用的是QuickPager分页控件,由QuickPagerSQL(单独的类库)动态拼接SQL,所以在测试页面下面会出现"拼接SQL用时",这个也是顺便看看拼接SQL的效率。   ...另外请注意一下,在显示第一页的时候,会使用count(0)来统计一下总记录数,所以显示第一页的时候,时间会长一点。   ...测试分析:   在这个测试里,DataReader分页慢的原因是数据比较大——100w。如果数据比较少,只有几百条的话,那么差距不会这么大。

    1.4K70

    利用本地存储,记录滚动条的位置

    2、功能分析 这个功能的实现并不是很难,当页面滚动时记录页面滚动条的位置并保存到本地存储里面,当你再次打开页面的时候读取本地存储里面的值来设置页面滚动条的位置。具体我们来分析一下。...分析: 1、监听页面滚动条的状态(是否滚动) 2、滚动时获取页面滚动条的位置 3、滚动条的位置保存到本地存储里面 4、页面每次加载的时候获取本地存储里面的值 5、获取到的值来设置页面滚动条的位置 3、知识要点...先判断本地存储里面是否有记录过页面滚动条的值,如果有则获取本地存储的值,否则不进行操作。...5、总结 利用本地存储,记录滚动条的位置,主要涉及了两个主要技术点,一个点是滚动条的操作,另外一个点是本地存储的操作。...其实,这个功能还可以扩展到Tab切换里面,记录用户点击了哪一个Tab项,下次打开的时候显示上次打开的Tab项。

    2.7K70
    领券