Timers

Frontend SELF VI
Mức độ , Bài học
Có sẵn

4.1 Hàm setTimeout

Timers trong JavaScript cho phép thực hiện các hành động nhất định sau những khoảng thời gian đã định. Hai phương thức chính để làm việc với timers là setTimeout()setInterval(). Chúng được sử dụng để thực hiện mã với độ trễ hoặc qua các khoảng thời gian đều đặn.

Phương thức setTimeout() cho phép thực hiện một hàm một lần sau một số mili giây nhất định. Nó hữu ích cho việc thực hiện mã trễ.

Cú pháp:

    
      const timeoutID = setTimeout(callback, delay, ...args);
    
  

Ở đâu:

  • callback: hàm sẽ được thực hiện
  • delay: độ trễ tính bằng mili giây trước khi thực hiện hàm
  • args: các tham số bổ sung sẽ được truyền vào hàm callback

Ví dụ về việc sử dụng setTimeout():

JavaScript
    
      // Hàm sẽ được thực hiện sau 2 giây
      function greet() {
        console.log('Xin chào, thế giới!');
      }

      // Thiết lập timer
      const timeoutID = setTimeout(greet, 2000);
    
  

4.2 Hủy timer setTimeout

Nếu cần hủy thực hiện hàm đã được lập lịch thông qua setTimeout(), bạn có thể sử dụng phương thức clearTimeout():

JavaScript
    
      // Hàm sẽ được thực hiện sau 2 giây
      function greet() {
        console.log('Xin chào, thế giới!');
      }

      // Thiết lập timer
      const timeoutID = setTimeout(greet, 2000);

      // Hủy timer
      clearTimeout(timeoutID);
    
  

Ví dụ với tham số bổ sung:

JavaScript
    
      // Hàm sẽ được thực hiện sau 2 giây với tham số
      function greet(name) {
        console.log(`Xin chào, ${name}!`);
      }

      // Thiết lập timer và truyền tham số
      const timeoutID = setTimeout(greet, 2000, 'Alice');
    
  

4.3 Hàm setInterval

Phương thức setInterval() cho phép thực hiện hàm lặp lại qua những khoảng thời gian đã định. Nó hữu ích cho việc thực hiện mã định kỳ.

Cú pháp:

    
      const intervalID = setInterval(callback, delay, ...args);
    
  

Ở đâu:

  • callback: hàm sẽ được thực hiện
  • delay: khoảng thời gian tính bằng mili giây giữa các lần gọi hàm
  • args: các tham số bổ sung sẽ được truyền vào hàm callback

Ví dụ về việc sử dụng setInterval:

JavaScript
    
      // Hàm sẽ được thực hiện mỗi 2 giây
      function greet() {
        console.log('Xin chào, thế giới!');
      }

      // Thiết lập interval
      const intervalID = setInterval(greet, 2000);
    
  

4.4 Hủy interval setInterval

Nếu cần dừng việc thực hiện hàm lặp lại, bạn có thể sử dụng phương thức clearInterval().

JavaScript
    
      // Hàm sẽ được thực hiện mỗi 2 giây
      function greet() {
        console.log('Xin chào, thế giới!');
      }

      // Thiết lập interval
      const intervalID = setInterval(greet, 2000);

      // Hủy interval sau 10 giây
      setTimeout(() => {
        clearInterval(intervalID);
        console.log('Interval đã bị hủy');
      }, 10000);
    
  

Ví dụ với tham số bổ sung:

JavaScript
    
      // Hàm sẽ được thực hiện mỗi 2 giây với tham số
      function greet(name) {
        console.log(`Xin chào, ${name}!`);
      }

      // Thiết lập interval và truyền tham số
      const intervalID = setInterval(greet, 2000, 'Alice');
    
  

4.5 Ví dụ sử dụng thực tế

Ví dụ 1: Cập nhật thời gian tự động

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Auto-update Time</title>
        </head>
        <body>
          <h1>Current Time</h1>
          <div id="time"></div>

          <script>
            function updateTime() {
              const now = new Date();
              const timeString = now.toLocaleTimeString();
              document.getElementById('time').textContent = timeString;
            }

            // Cập nhật thời gian mỗi giây
            updateTime();
            setInterval(updateTime, 1000);
          </script>
        </body>
      </html>
    
  

Ví dụ 2: Yêu cầu dữ liệu định kỳ

JavaScript
    
      // Hàm để mô phỏng yêu cầu dữ liệu
      function fetchData() {
        console.log('Đang yêu cầu dữ liệu...');
        // Ở đây có thể thực hiện yêu cầu thực tế đến server
      }

      // Thực hiện yêu cầu dữ liệu mỗi 10 giây
      const intervalID = setInterval(fetchData, 10000);

      // Dừng yêu cầu sau 1 phút
      setTimeout(() => {
        clearInterval(intervalID);
        console.log('Đã dừng yêu cầu dữ liệu');
      }, 60000);
    
  
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION