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

面试官:为什么Promise中错误不能被trycatch?

前言 之前写过一篇文章,讨论了为什么async await中错误可以被try catch,而setTimeout等api不能,有小伙伴提出之前面试被面试官问过为什么Promise错误不能try catch...,为什么要这么设计。...为什么要引入Promise?...这也没有统一标准,对于大部分代码,我们根本就不能对这些已经执行完代码注册回调,有些会同步执行回调,有些会异步执行回调,我们根本不可能记住所有api机制,要么每次使用时我们都要研究这个api实现机制...在这里没有去处理finally handler可能出现错误,这样代码调用方既可以处理结果也可以处理错误,而我可以保证打开一些副作用被正确销毁(比如这里隐藏loading)。

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

为什么要创建一个不能被实例化

但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。...由于这些 Mixin 类提供各个工具方法互不相关,所以不存在菱形继承问题。但是在子类中却可以分别调用这些工具方法,从而扩展子类功能。

3.4K10

揭秘:为什么数据科学家都钟情于这个错误正态分布?

即使你没有参与过任何人工智能项目,也一定遇到过高斯模型,今天就让我们来看看高斯过程为什么这么受欢迎。 编译:JonyKai、元元、云舟 来源:大数据文摘(ID:BigDataDigest) ?...高斯分布(Gaussian distribution),也称正态分布,最早由A.棣莫弗在求二项分布渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。...例如,在生产条件不变情况下,产品强力、抗压强度、口径、长度等指标;同一种生物体身长、体重等指标;同一种种子重量;测量同一物体误差;弹着点沿某一方向偏差;某个地区年降水量;以及理想气体分子速度分量...一般来说,如果一个量是由许多微小独立随机因素影响结果,那么就可以认为这个量具有正态分布。...▲二维空间上进行200万步随机游走后得到图案 中心极限定理内容为:大量独立随机变量和经过适当标准化之后趋近于正态分布,与这些变量原本分布无关。比如,随机游走总距离就趋近于正态分布。

93610

打破了 React Hook 必须按顺序、不能在条件语句中调用枷锁!

但由于这个限制存在,我们只能把所有 Hook 调用提升到函数顶部,增加额外开销。...本应该渲染出 second 地方渲染出了 first。 ? 第二次渲染 没错,本应该值为 second value,莫名其妙被指向了 first,渲染完全错误!...ok 自动编译 事实上 React 团队也考虑过给每次调用加一个 key 值设计,在 Dan Abramov 为什么顺序调用对 React Hooks 很重要?...但我想法是,能不能借助 babel 插件编译能力,实现编译期自动为每一次 Hook 调用都注入一个 key, 伪代码如下: traverse(node) { if (isReactHookInvoking...并不希望 React 取消掉这些限制,觉得这也是设计取舍。 如果任何子函数,任何条件表达式中都可以调用 Hook,代码也会变得更加难以理解和维护。

1.7K20

打破了 React Hook 必须按顺序、不能在条件语句中调用枷锁

('first') // 第二次调用 currentIndex 为 1 useState('second') 可以看出,每次 Hook 调用都对应一个全局 index 索引,通过这个索引去当前运行组件...没错,本应该值为 second value,莫名其妙被指向了 first,渲染完全错误!...key 值设计,在 Dan Abramov 为什么顺序调用对 React Hooks 很重要?...但我想法是,能不能借助 babel 插件编译能力,实现编译期自动为每一次 Hook 调用都注入一个 key, 伪代码如下: traverse(node) { if (isReactHookInvoking...并不希望 React 取消掉这些限制,觉得这也是设计取舍。 如果任何子函数,任何条件表达式中都可以调用 Hook,代码也会变得更加难以理解和维护。

95020

这个角度,终于理解为什么需要Kafka这样东西了!

更直接办法是让应用程序之间直接交互,例如程序A调用程序BRESTful API。 但问题是程序B如果暂时不可用,程序A就会比较悲催,怎么办呢?等一会儿再试? 如果程序B还不行,那就循环再试。...调用责任太大。 于是消息队列(MQ)就出现了,程序A把数据往消息队列中一扔,完事走人,程序B想什么时候读就什么时候读,极其灵活。...可是传统MQ也有问题,通常情况下,一个消息确认被读取以后,就会被删除。如果来了一个新程序C,也想读之前消息,或者说之前一段时间消息,传统MQ表示无能无力。...能不能把数据库特点和MQ特点结合起来呢? 消息可以持久化,让多个程序都可以读取,并且还支持发布-订阅这种模式。...只要记录下每个程序都读到了哪个编号, 这个程序可以断开和Kafka连接,这个程序可以崩溃,下一次就可以接着读。 新消费者程序可以随意加入读取,不影响其他消费者程序, 是不是很爽?

1.6K40

用编程模拟疫情传播来告诉你: 为什么现在你还不能出门

看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己理论:我们城市才一点确诊病人,而且在距离我们很远地方,就出去一会儿,哪有那么巧合,就感染上了。没事儿!大街上都没人,戴着口罩又没事。...因此一个疫情发生,必须依靠强大有力政府比如中国,和广大医院医生护士等伟大工作者们努力,所以平时请尽量尊重他们这个职业。 ?...希望大家不要抱着侥幸心理!尤其是这几天,很多地方天气变好了,感觉疫情已经得到了控制,但是放松警惕时候恰恰是最危险时候!...当确诊病例不再上升,没有疑似病例出现,那么我们就基本可以清楚疫情已经基本得到控制。那时才是真正春天到来。 切记切记: 普通人对抗疫情最好办法就是:能不出门就不出门。

2.1K10

这个语句报了无效语法错误 但是不知道是哪里写错了

一、前言 前几天在Python最强王者交流群【群除佬】问了一个Pandas处理问题,提问截图如下: 代码如下所示: songid_tags_df['tblTags'].map(lambda x :..., x) if isinstance(x,str)) 二、实现过程 后来自己给了一个示例代码,如下所示: songid_tags_df['tblTags'].map(lambda x: re.findall..., x) if isinstance(x, str) else x) 后来【隔壁山楂】也给了一个可行代码,如下所示: songid_tags_df['tblTags'].astype(str).str.extract...三、总结 大家好,是皮皮。这篇文章主要盘点了一个Pandas处理问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【群除佬】提问,感谢【皮皮】、【瑜亮老师】、【隔壁山楂】给出思路和代码解析,感谢【Python进阶者】、【孤独】等人参与学习交流。

67320

【手记】走近科学之为什么明明实现了IEnumerable类型却不能调用LINQ扩展方法

比如Json.NETJObject明明实现了IEnumerable,具体来说是IEnumerable>,按说JObject类型对象是可以直接调用...Select、Where等linq扩展方法,但偏偏就是不行,代码如下: using System.Linq; ... var jobj = new JObject(); var xxx = jobj.Select...(x=>x); //报错:JObject未包含Select定义,也不存在第1个参数为JObjectSelect扩展方法... foreach(var x in jobj) { } //可以 var xxx...= ((IEnumerable>)jobj).Select(x=>x); //也可以 究竟是人性扭曲还是道德沦丧?...,等于JObject直接和间接实现了两个不同IEnumerable,当.Select时候编译器不能确定调用哪个类型Select,所以就这样了。

78810

为什么建议线上高并发量日志输出时候不能带有代码位置

如果大家发现网上有抄袭本文章,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么建议”系列第二篇,本系列中会针对一些在高并发场景下,对于组内后台开发一些开发建议以及开发规范要求进行说明和分析解读...往期回顾: 为什么建议在复杂但是性能关键表上所有查询都加上 force index 在业务一开始上线时候,我们线上日志级别是 INFO,并且在日志内容中输出了代码位置,格式例如: 2022-03...在上面给出线程堆栈例子中,调用打印日志方法代码位置信息就是这一行:at com.xxx.apigateway.filter.AccessCheckFilter.filter(AccessCheckFilter.java...模拟两种方式获取调用打印日志方法代码位置,与不获取代码位置会有多大性能差异 以下代码参考 Log4j2 官方代码单元测试,首先是模拟某一调用深度堆栈代码: 然后,编写测试代码,对比纯执行这个代码...由此,建议:对于微服务环境,尤其是响应式微服务环境,堆栈深度非常深,如果会输出大量日志的话,这个日志是不能带有代码位置,否则会造成严重性能衰减。

1.4K20

用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略

在第15行到第27行定义calMACD方法中,将调用第8行定义calEMA方法来计算MACD值。...具体步骤是,在第18行和第19行通过调用calEMA方法,分别得到了快速和慢速EMA值,在第20行,用这两个值计算DIF值。...正确 根据这个范例程序运行结果,可以得到结论是:通过MACD指标的确能算出买点,但之前也说过,MACD有盲点,在盘整阶段,趋势没有形成时,此时金叉指导意义就不是很明显,甚至是错误。...在通过MACD指标确认趋势时,应当从DIF和DEA数值、运动趋势(即金叉或死叉情况)和Bar柱运动趋势等方面综合评判,而不能简单割裂地通过单个因素来考虑。...在博客里,也有其它相关介绍本书文章,链接如下。

3.6K10

详解Java构造方法为什么不能覆盖,钻牛角尖病又犯了....

三 但是,看了输出,就纳闷为什么为什么第三行不是BigEgg2.Yolk(),不能覆盖吗?...那么,他们构造方法为什么不能覆盖,都是Public Yolk(){}。 当然,网上都说子类继承父类除构造方法以外所有方法,但这是结果,要知道为什么!! 五 先说几个错误观点 1....有说构造方法方法名与类名必须一样,父子类不能同名,故不能继,所以不能覆盖构造方法。 这个不用多说,这个例子,就是大神写出来打这样说的人。 2....这个强行用中文语法来解释,达到中文6级了啊。 3. 有说构造方法不是成员函数,故不能继承,所以谈不上覆盖。 这个真的有道理,是java官方文档上。大多数人找到这里估计就满足了。...(2).子类创建时候,会默认在构造方法第一行调用父类默认构造方法-,若修改了必须显示调用

2K20

美团一面:能不能通俗解释下为什么要有意向锁这个东西?

导 读 面试真题,用通俗例子解释清楚 MySQL 为什么有了表锁和行锁之后,还要引入意向锁 众所周知,InnoDB 中既有读锁也有写锁,也称为共享锁和排他锁,这两种锁既可以加在整张表上,也可以加在行上...看下面这个例子: 事务 A 加了行级读锁,锁住了表中一行,让这一行只能读,不能写。 之后,事务 B 尝试申请整个表写锁。...那数据库要怎么判断这个冲突呢?...(行级写锁)时,InnoDB 存储引擎会自动地先获取该表意向写锁(表级锁) 注意这里自动:申请意向锁动作是数据库完成,就是说,事务 A 申请一行行锁时候,数据库会自动先开始申请表意向锁,不需要我们程序员使用代码来申请...也就是说原先步骤 2 遍历表中每一行操作,简化成了判断下整张表上有无表级意向锁就行了,效率大幅提升。 这就是为什么要有意向锁了。 End.

68420

在安装Python库时候一直出这个错误,尝试了很多方法,怎么破?

大家好,是皮皮。 一、前言 前几天在Python星耀群【喜欢站在一号公路上】问了一个Python库安装问题,一起来看看吧。...下图是他一个报错截图: 二、实现过程 这里【对不起果丹皮】提示到上图报错上面说要你安装pep517,但是这个好像还挺难。后来【莫生气】提示别省事,一个一个去安装。...主要txt文件里边库太多了,而且格式不太规则,挨个安装后,后来暂时没有发现问题。 三、总结 大家好,是皮皮。...这篇文章主要盘点了一个Python库安装问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。

15730

用Python可视化股票指标

用Python可视化股票指标 一个完整量化交易策略指考虑到交易方方面面,但是能不能赚钱,谁知道呢 :) 但是一个量化交易可以通过回测系统建立信心然后让其一如既往运行,以达到让钱生钱目的,并且是自动...笔者主要谈纯技术面的量化交易,基本面的一些情况并不好处理及量化,也暂时没有涉及。...趋势跟随 价值回归 趋势跟随 这个流派认为,股票走势是有延续性,所以买卖点机会在于抓住走势。 代表指标: MACD, 移动平均线。 评语: 半年不开张,开张吃半年。...MACD MACD称为异同移动平均线,是从双指数移动平均线发展而来,由快指数移动平均线(EMA12)减去慢指数移动平均线(EMA26)得到快线DIF,再用2×(快线DIF-DIF9日加权移动均线...DEA)得到MACD柱。

2.9K11

调用Thread类方法:public final String getName() 为什么得到线程对象名称默认是:Thread-0、Thread-1、Thread-2、...呢?

调用Thread类方法:public final String getName() 为什么得到线程对象名称默认是:Thread-0、Thread-1、Thread-2、...呢?...(); } } 由以上可知,由MyThread my1 = new MyThread(); 第一次调用无参构造时候,就会去父类thread 调用位无参构造,而父类无参构造是一系列init...() 方法,最终得到 Thread-0,启动线程后,再通过Thread类getName()方法得到线程对象名称。...同理,MyThread my2 = new MyThread(); 第二次调用无参构造时候,就会去父类thread 调用位无参构造,而父类无参构造是一系列init() 方法,最终得到 Thread...-1,启动线程后,再通过Thread类getName()方法得到线程对象名称。

78320

金融数据分析与挖掘具体实现方法 -2

貌似三个月没有更新博客园了,当时承诺第二篇金融数据分析与挖掘这几天刚好又做了总结,在国内经济不景气现在来对这个话题结个尾。...计算公式: 1、MACD首先行计算出快速(一般选12日)移动平均值与慢速(一般选26日)移动平均值 2、12日EMA数值减去26日EMA数值得到,差离值DIF 3、根据离差值计算其9日EMA...5、当红柱开始消失、绿柱开始放出时,这是投资市场转市信号之一,表明投资市场上涨行情(或高位盘整行情)即将结束,价格走势将开始加速下跌,这时应开始卖出大部分投资品种而不能买入投资品种。...当股市强烈震荡或股价变化巨大(如送配股拆细等)时,可能会给出错误信号。所以在决定股票操作时,应该谨慎参考其他指标,以及市场状况,不能完全信任差离值单一研判,避免造成损失。...")   我们对RSI做个总结     尤其在市场剧烈震荡时,还应参考其它指标进行综合分析,不能简单地依赖RSI信号来作出买卖决定,可以和MACD结合一起使用。

2.2K21

面试官:告诉为什么static和transient关键字修饰变量不能被序列化?

一、写在开头在上一篇学习序列化文章中我们提出了这样一个问题:“如果在对象中,有些变量并不想被序列化应该怎么办呢?”...当时没有解释具体为什么static和transient 关键字修饰变量就不能被序列化了,这个问题实际上在很多大厂面试中都可能会被问及。我们今天在这篇中进行解释吧。...三、源码分析在之前文章中,我们已经解释过了,在序列化时Serializable只是作为一种标识接口,告诉程序这个对象需要序列化,那么真正实现还要以来序列化流,比如写出到文件时,我们需要用到ObjectOutputStream...四、总结好啦,今天针对为什么static和transient关键字修饰变量不能被序列化进行了一个解释,下次大家在面试时候再被问道就可以这样回答啦,不过,还有的BT面试官会问transient关键字修饰变量真的不能被序列化吗...这个问题咱们后面继续讨论哈。正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

11020
领券