个人理解:
js 的周期性定时器,相对于定时器之外的代码,是异步执行的。
即,定时器之后的代码,不会因为定时器的等待,执行,清除等状态而停止执行。
即,定时器和定时器以外的代码,各干各的,不会等待彼此。
代码如下:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>setInterval</title> </head> <body> <script> let rings; let interval = setInterval(getQueryScope, 500); function getQueryScope() { if(rings){ clearInterval(interval); return } console.log("bbb"); rings = []; } console.log("aaa"); // 代码执行结果: // aaa // bbb </script> </body> </html>