Execute script after specific delay using JavaScript

前端 未结 15 1766
陌清茗
陌清茗 2020-11-22 12:29

Is there any JavaScript method similar to the jQuery delay() or wait() (to delay the execution of a script for a specific amount of time)?

15条回答
  •  孤街浪徒
    2020-11-22 13:07

    I had some ajax commands I wanted to run with a delay in between. Here is a simple example of one way to do that. I am prepared to be ripped to shreds though for my unconventional approach. :)

    //  Show current seconds and milliseconds
    //  (I know there are other ways, I was aiming for minimal code
    //  and fixed width.)
    function secs()
    {
        var s = Date.now() + ""; s = s.substr(s.length - 5);
      return s.substr(0, 2) + "." + s.substr(2);
    }
    
    //  Log we're loading
    console.log("Loading: " + secs());
    
    //  Create a list of commands to execute
    var cmds = 
    [
        function() { console.log("A: " + secs()); },
        function() { console.log("B: " + secs()); },
        function() { console.log("C: " + secs()); },
        function() { console.log("D: " + secs()); },
        function() { console.log("E: " + secs()); },
      function() { console.log("done: " + secs()); }
    ];
    
    //  Run each command with a second delay in between
    var ms = 1000;
    cmds.forEach(function(cmd, i)
    {
        setTimeout(cmd, ms * i);
    });
    
    // Log we've loaded (probably logged before first command)
    console.log("Loaded: " + secs());
    

    You can copy the code block and paste it into a console window and see something like:

    Loading: 03.077
    Loaded: 03.078
    A: 03.079
    B: 04.075
    C: 05.075
    D: 06.075
    E: 07.076
    done: 08.076
    

提交回复
热议问题