当前位置:网站首页>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 !
边栏推荐
- Arthas watch grabs a field / attribute of the input parameter
- Drf--- quick start 01
- 【PHP漏洞-弱类型】基础知识、php弱相等、报错绕过
- Mount NFS in kubesphere
- Contents of welder (primary) examination and welder (primary) examination in 2022
- Leetcode simple question: check whether the array is sorted and rotated
- Introduction of pointer variables in function parameters
- 怎么用Kotlin去提高生产力:Kotlin Tips
- JVM原理简介
- 2.14 summary
猜你喜欢
2022 registration of G2 utility boiler stoker examination and G2 utility boiler stoker reexamination examination
Function introduction of member points mall system
The least operation of leetcode simple problem makes the array increment
Why should programmers learn microservice architecture if they want to enter a large factory?
Leetcode simple question: check whether two string arrays are equal
Introduction to message queuing (MQ)
Games101 Lesson 9 shading 3 Notes
GFS分布式文件系统(光是遇见已经很美好了)
Integration of Android high-frequency interview questions (including reference answers)
Use the benchmarksql tool to perform a data prompt on kingbases. The jdbc driver cannot be found
随机推荐
Which Bluetooth headset is good about 400? Four Bluetooth headsets with strong noise reduction are recommended
2022 new examination questions for the main principals of hazardous chemical business units and examination skills for the main principals of hazardous chemical business units
How do you use lodash linking function- How do you chain functions using lodash?
General undergraduate college life pit avoidance Guide
因子选股-打分模型
Sdl2 + OpenGL glsl practice (Continued)
Jincang KFS data bidirectional synchronization scenario deployment
Drf--- quick start 01
[set theory] binary relationship (binary relationship notation | binary relationship from a to B | number of binary relationships | example of binary relationship)
【XSS绕过-防护策略】理解防护策略,更好的绕过
GFS distributed file system (it's nice to meet it alone)
After job hopping at the end of the year, I interviewed more than 30 companies in two weeks and finally landed
vulnhub HA: Natraj
IPhone x forgot the boot password
FFMpeg filter
2022 chemical automation control instrument examination summary and chemical automation control instrument certificate examination
Truncated sentences of leetcode simple questions
使用BENCHMARKSQL工具对KingbaseES执行测试时报错funcs sh file not found
How to choose cross-border e-commerce multi merchant system
2022 P cylinder filling test content and P cylinder filling simulation test questions