当前位置:网站首页>I stepped on a foundation pit today
I stepped on a foundation pit today
2022-07-03 04:37:00 【Programming samadhi】

introduction
I wonder if you have such an experience : It's wrong to suddenly find out that you have a deep-rooted view for a long time ?
I stepped on a pit today : I always remember in my impression setInterval After definition, it will Execute now Once inside the logic , So when implementing the logic in the figure below , I will take the second step (” Execute the logic immediately a“) It's not necessary , This province has brought me a bug, Khan, ~

It's out bug, We need to remedy , Don't lose your attitude !
Bronze grade
Speaking of the simplest fix , That's the method we often use , The code is as follows :
function fun(){
}
fun();
setInterval(fun, 1000);
Yes , It's so simple and plain !
Diamond grade
Since it's diamond grade , Then you have to play some tricks , Otherwise, it will be useless .
In fact, there is a hidden danger in the above bronze level implementation : It cannot be ensured that there is only one timer executing this logic at the same time . Then let's encapsulate :
let timer = null;
function func(){
}
function mainFun(callback, time){
callback();
return setInterval(callback, time);
}
timer && clearInterval(timer);
timer = mainFun(func, 1000);
Xingyao class
Use the objective function to return the objective function itself .
let timer = null;
function func(){
}
timer && clearInterval(timer);
timer = mainFun(func(), 1000);
Um. , The code style is a little higher .
King level
Since it needs to be executed immediately , Then why not use self executing functions ?
let timer = null;
timer && clearInterval(timer)
timer = setInterval((function func () {
})(), 1000);
Although the logic is the same as above , But I don't know why it's a little tall ,-
Conclusion
In fact, I still don't understand why I have such a wrong memory , And no correction has been found for so long .
It's not terrible to make mistakes , The terrible thing is that you don't realize you've made a mistake !
It takes a good blacksmith to make steel. , Don't look at how big others' implementation methods are , In fact, it is the result of some reasonable combination of basic knowledge , As long as you have a good foundation , Even in the face of a simple piece of code, you can play a different trick !
- ~
- The end of this paper , Thank you for reading !
~
Learn interesting knowledge , Make interesting friends , Create interesting souls !
Hello everyone , I am a 〖 The samadhi of programming 〗 The author of Hermit King , My official account is 『 The samadhi of programming 』, Welcome to your attention , I hope you can give me more advice !
边栏推荐
- Employee attendance management system based on SSM
- IPhone x forgot the boot password
- MC Layer Target
- [fxcg] inflation differences will still lead to the differentiation of monetary policies in various countries
- The usage of micro service project swagger aggregation document shows all micro service addresses in the form of swagger grouping
- FFMpeg example
- [set theory] binary relation (example of binary relation on a | binary relation on a)
- Which Bluetooth headset is cost-effective? Four Bluetooth headsets with high cost performance are recommended
- FuncS sh file not found when using the benchmarksql tool to test kingbases
- 有道云笔记
猜你喜欢

Auman Galaxy new year of the tiger appreciation meeting was held in Beijing - won the double certification of "intelligent safety" and "efficient performance" of China Automotive Research Institute

Youdao cloud notes
![[dynamic programming] subsequence problem](/img/d8/020ae959ef53ce097d3a81a0d2d63a.jpg)
[dynamic programming] subsequence problem

The usage of micro service project swagger aggregation document shows all micro service addresses in the form of swagger grouping

Two drawing interfaces - 1 Matlab style interface

I've been in software testing for 8 years and worked as a test leader for 3 years. I can also be a programmer if I'm not a professional

SSM based campus part-time platform for College Students

Arthas watch grabs a field / attribute of the input parameter

STM32 reverse entry

What are the Bluetooth headsets with good sound quality in 2022? Inventory of four high-quality Bluetooth headsets
随机推荐
2022 tea master (intermediate) examination questions and tea master (intermediate) examination skills
Writing skills of multi plate rotation strategy -- strategy writing learning materials
Dive into deep learning - 2.1 data operation & Exercise
[fxcg] market analysis today
data2vec! New milestone of unified mode
普通本科大学生活避坑指南
SSM based campus part-time platform for College Students
使用BENCHMARKSQL工具对kingbaseES执行灌数据提示无法找到JDBC driver
How to retrieve the password for opening word files
Number of 1 in binary (simple difficulty)
跨境电商多商户系统怎么选
金仓数据库KingbaseES 插件kdb_date_function
Kingbasees plug-in KDB of Jincang database_ date_ function
Kingbasees plug-in KDB of Jincang database_ exists_ expand
Reptile exercise 02
How to choose cross-border e-commerce multi merchant system
vulnhub HA: Natraj
带有注意力RPN和多关系检测器的小样本目标检测网络(提供源码和数据及下载)...
AWS VPC
FFMpeg example