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


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

Underscore.js 是一個 JavaScript 庫,即使不使用任何 內置 對象,它也提供了許多有用的函數,如Map、過濾器、調用等。
_.defer() 函數用於調用/調用一個函數,直到當前調用堆棧被清除。它的主要優點是它以塊的形式執行昂貴的計算、計算或 HTML,而不會阻止 UI 線程更新。它與延遲為 0 的 setTimeOut() 函數函數相似。傳遞給該函數的函數將首先被調用。
調用堆棧是解釋器(如 JavaScript 解釋器)的一種機製,用於跟蹤其在調用多個函數的腳本中的位置。
用法:

_.defer(function, *arguments)

參數:
它需要兩個參數:

  • function
  • arguments (optional)

返回值:
它不返回任何值,而是執行傳遞的函數。

  1. 將 alert() 函數傳遞給 _.defer() 函數:
    _.defer() 函數首先檢查當前調用堆棧。如果它被清除,則將執行傳遞給它的 alert() 函數,並顯示傳遞給它的字符串“This is the deferred function”。但是如果當前調用堆棧沒有被清除並且有一些其他的工作要執行,那麽 alert() 函數將不會被立即調用,而是需要等待堆棧變空。
    Examples:

html


<html>
  
<head>
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
  </script>
</head>
  
<body>
    <script type="text/javascript">
        _.defer(function() {
            alert('This is the deferred function');
        });
    </script>
</body>
  
</html>
  1. Output:



  1. 使用 _.defer() 函數執行加法:
    我們可以使用 _.defer() 函數執行各種數學運算。就像這裏我們正在執行 7 和 3 的加法,然後警告它。將遵循相同的程序。首先,將檢查當前調用堆棧。如果它不為空,則不會調用其他函數。但如果全部清除,則會調用警報函數,顯示 7 和 3 的加法,即 10。
    Example:

HTML


<html>
  
<head>
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
  </script>
</head>
  
<body>
    <script type="text/javascript">
        _.defer(function() {
            alert(7 + 3);
        });
    </script>
</body>
  
</html>
  1. Output:

  1. 將 console.log() 函數傳遞給 _.defer() 函數:
    我們甚至可以使用其他函數,例如 console.log() 函數。 _.defer() 函數將檢查調用堆棧是否為空。如果它不為空,則不會調用 console.log() 函數。否則,控製台會顯示“This is the deferred function”。
    Example:

html


<html>
  
<head>
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
  </script>
</head>
  
<body>
    <script type="text/javascript">
        _.defer(function() {
            console.log('This is the deferred function');
        });
    </script>
</body>
  
</html>
  1. Output:

  1. 對_.defer()函數執行加法操作:
    我們甚至可以對 console.log() 函數進行加法操作。像這裏我們正在執行 1000 和 5666 的加法。如果調用堆棧為空,則顯示 “6666” (1000 + 5666),否則不會調用任何函數。
    Example:

html


<html>
  
<head>
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
  </script>
</head>
  
<body>
    <script type="text/javascript">
        _.defer(function() {
            console.log(1000 + 5666);
        });
    </script>
</body>
  
</html>
  1. Output:

筆記:
這些命令在 Google 控製台或 Firefox 中不起作用,因為需要添加他們沒有添加的這些附加文件。
因此,將給定的鏈接添加到您的 HTML 文件中,然後運行它們。
鏈接如下:

HTML


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



相關用法


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