Node.js中使用计时器定时执行函数详解

2020-06-17 05:36:47易采站长站整理

                   setInterval(function(){

                            (function my_async_function(){

                                      setTimeout(function(){

                                              console.log(“1”);

                                      },5000);

                           })();

                   },interval);

 运行下这段代码看看,你会发现,等待5秒钟后,“hello ”被每隔1秒输出一次。而我们期望是,当前my_async_function执行完毕(耗费5秒)后,等待1秒再执行下一个my_async_function,每次输出之间应该间隔6秒才对。造成这种结果,是因为my_async_function不是串行执行的,而是多个在同时运行。

 因此,你需要一种办法来强制使一个my_async_function执行结束到下个my_async_function开始执行之间的间隔时间正好是interval变量指定的时间。你可以这样做:
 
                    var interval = 1000; // 1 秒

                   (function schedule() {      //第3行

                            setTimeout(function do_it() {

                                     my_async_function(function() {      //第5行

                                               console.log(‘async is done!’);