當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


underscore.js _.delay()用法及代碼示例


_.delay()函數:

  • 等待指定的毫秒數後,它將在其參數中執行提到的函數。
  • 它通常在我們要執行某些任務但要經過一定時間後使用。在這種情況下,我們可以定義此函數,然後將在等待毫秒後執行。
  • 如果我們也將參數傳遞給此函數(可以選擇傳遞),則這些參數將充當傳遞給_.delay()函數的函數的參數。

用法:

_.delay(function, wait, *arguments)

參數:它包含三個參數:


  • 要執行的函數。
  • wait:需要執行該函數的時間(以毫秒為單位)
  • 傳遞給_.delay()函數的函數的自變量(可選)

返回值:它返回傳遞的函數的值,等待毫秒後執行。

例子:

  1. 將函數直接傳遞給_.delay()函數:_.delay()函數使用的等待參數為1000ms,然後等待1000ms,然後執行傳遞的函數(此處為console.log())並打印傳遞給它的字符串,即編碼很有趣。因此,在1000毫秒後將顯示字符串“coding is fun”。
    <html> 
       
    <head> 
        <!-- These lines are for Mozilla Firefox  
              developer edition to stop the web packs-->
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
        <meta content="utf-8" http-equiv="encoding"> 
        <!-- You may ignore these when using in another browser -->
        <script src =  
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
        </script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
            _.delay(console.log, 1000, 'coding is fun!'); 
        </script> 
    </body> 
       
    </html>

    輸出:

  2. 將_.bind()函數與_.delay()函數一起使用:
    _.bind()函數用於將對象傳遞給該函數。像這裏的console.log()函數有一個對象控製台。此“ func()”意味著將傳遞給此函數的所有內容都將顯示在控製台上。 _.bind()函數中未提及等待時間。然後,在_.delay()函數中,我們需要等待2000毫秒,此後,字符串“hello”將顯示在控製台上。
    <html> 
       
    <head> 
        <!-- These lines are for Mozilla Firefox  
           developer edition to stop the web packs-->
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
        <meta content="utf-8" http-equiv="encoding"> 
        <!-- You may ignore these when using in another browser -->
        <script src =  
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > 
        </script> 
        <script src= 
        "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
        </script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
            var func = _.bind(console.log, console); 
            _.delay(func, 2000, 'hello'); 
        </script> 
    </body> 
       
    </html>

    輸出:

  3. 向傳遞給_.delay()函數的函數傳遞多個參數:
    _.delay()函數傳遞了一個“ func()”,其中包含與先前示例相同的_.bind()函數。然後經過了3000毫秒的等待時間,這意味著將在3000毫秒後顯示輸出。傳遞了另外3個參數,這些參數將被視為傳遞的“ func()”函數的參數。因此,最終輸出將在3000毫秒後顯示,並將是所有3個字符串的組合,即“ hello!”。你好嗎?”。
    <html> 
       
    <head> 
        <!-- These lines are for Mozilla Firefox  
           developer edition to stop the web packs-->
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
        <meta content="utf-8" http-equiv="encoding"> 
      
        <!-- You may ignore these when using in another browser -->
        <script src =  
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
        </script> 
        <script src= 
        "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
        </script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
            var func = _.bind(console.log, console); 
            _.delay(func, 3000, 'hello!', 'how are', 'you?'); 
        </script> 
    </body> 
       
    </html>

    輸出:

  4. 將數字作為參數傳遞給_.delay()函數:
    我們甚至可以將數字作為參數傳遞給函數。在這裏,我們將“ 12345”作為參數傳遞給“ func()”函數。聲明了“ func()”函數,與之前的示例一樣。此函數的輸出將是“12345”,它將在5000毫秒後顯示。
    <html> 
       
    <head> 
        <!-- These lines are for Mozilla Firefox  
             developer edition to stop the web packs-->
        <meta content="text/html;charset=utf-8" 
         http-equiv="Content-Type"> 
        <meta content="utf-8" http-equiv="encoding"> 
      
        <!-- You may ignore these when using in another browser -->
        <script src =  
    "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
        </script> 
        <script src= 
        "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
        </script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
            var func = _.bind(console.log, console); 
            _.delay(func, 5000, '12345'); 
        </script> 
    </body> 
       
    </html>

    輸出:

注意:這些命令在Google控製台或firefox中將無法使用,因為需要添加這些尚未添加的其他文件。
因此,將給定的鏈接添加到您的HTML文件,然後運行它們。

鏈接如下:

<!-- Write HTML code here -->
<script type="text/javascript" src = 
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> 
</script>


相關用法


注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js | _.delay() with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。