当前位置:网站首页>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 !
边栏推荐
- 【XSS绕过-防护策略】理解防护策略,更好的绕过
- Know that Chuangyu cloud monitoring - scanv Max update: Ecology OA unauthorized server request forgery and other two vulnerabilities can be detected
- Games101 Lesson 9 shading 3 Notes
- 2022 P cylinder filling test content and P cylinder filling simulation test questions
- [set theory] binary relation (example of binary relation on a | binary relation on a)
- 220214c language learning diary
- Basic use of continuous integration server Jenkins
- Matplotlib -- save graph
- 2022 Shandong Province safety officer C certificate examination content and Shandong Province safety officer C certificate examination questions and analysis
- Kingbasees plug-in KDB of Jincang database_ database_ link
猜你喜欢
Triangular rasterization
使用BENCHMARKSQL工具对kingbasees并发测试时kill掉主进程成功后存在子线程未及时关闭
[pat (basic level) practice] - [simple simulation] 1063 calculate the spectral radius
2022 registration of G2 utility boiler stoker examination and G2 utility boiler stoker reexamination examination
Use the benchmarksql tool to perform a data prompt on kingbases. The jdbc driver cannot be found
2022 P cylinder filling test content and P cylinder filling simulation test questions
有道云笔记
会员积分商城系统的功能介绍
Integration of Android high-frequency interview questions (including reference answers)
The usage of micro service project swagger aggregation document shows all micro service addresses in the form of swagger grouping
随机推荐
[BMZCTF-pwn] 20-secret_ file
Learning practice: comprehensive application of cycle and branch structure (I)
Youdao cloud notes
Jincang KFS data bidirectional synchronization scenario deployment
arthas watch 抓取入参的某个字段/属性
【SQL注入】联合查询(最简单的注入方法)
2022-02-12 (338. Bit count)
【SQL注入点】注入点出现位置、判断
IPhone x forgot the boot password
How to choose cross-border e-commerce multi merchant system
C language series - Section 3 - functions
Asp access teaching management system design finished product
Internationalization and localization, dark mode and dark mode in compose
Triangular rasterization
Ffmpeg mix
Number of uniform strings of leetcode simple problem
普通本科大学生活避坑指南
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
The usage of micro service project swagger aggregation document shows all micro service addresses in the form of swagger grouping