Đặt thời gian chờ nodejs

Phương thức setTimeout() rất hữu ích để thực thi chức năng gọi lại cần được thực thi trong tương lai. Các tham số cho phương thức này là hàm gọi lại sẽ được thực thi và thời gian đã trôi qua trước khi nó được thực thi (tính bằng mili giây). Một hoặc nhiều đối số được truyền cho hàm gọi lại theo tham số thời gian

Một ví dụ đơn giản về việc sử dụng phương thức setTimeout() xuất hiện bên dưới

setTimeout(function(str1, str2) {
  console.log(str1 + " " + str2);
}, 1000, "Hello.", "How are you?");

Hai chuỗi được truyền vào và sau đó được ghi vào bàn điều khiển sau một giây chờ đợi trước khi thực hiện phương thức. Bạn có thể cần hủy thời gian chờ trước khi thực hiện chức năng gọi lại. Phương thức setTimeout() trả về một mã định danh có thể được sử dụng với phương thức clearTimeOut()

Một ví dụ đơn giản về việc sử dụng phương thức clearTimeout() xuất hiện bên dưới

var timeOut = setTimeout(function(str1, str2) {
  console.log(str1 + " " + str2);
}, 1000, "Hello.", "How are you?");

clearTimeout(timeOut);

Ví dụ trên hủy lệnh gọi hàm ngay lập tức (trong các tình huống thực tế, việc hủy sẽ xảy ra dựa trên một sự kiện)

Thư quảng cáo & ưu đãi đặc biệt của InformIT

Tôi muốn nhận các ưu đãi độc quyền và nghe về các sản phẩm từ InformIT và các thương hiệu của họ. Tôi có thể hủy đăng ký bất cứ lúc nào

Xin chào độc giả. Trước khi chuyển sang setTimeout trong Node js, trước tiên hãy hiểu toàn bộ khái niệm đằng sau nó và chúng tôi sẽ đề cập đến một số câu hỏi được hỏi nhiều nhất.  

setTimeout là một phần của bộ hẹn giờ trong Node js. Bây giờ câu hỏi có thể nảy sinh, bộ hẹn giờ trong Node js là gì? . Điều này có thể là do Node js API cung cấp lập lịch trình mã tại một trường hợp cụ thể. setTimeout() được sử dụng rộng rãi khi thử nghiệm và là một yếu tố quan trọng trong bộ hẹn giờ của Node js. Các nhà phát triển sử dụng điều này để kiểm tra hoạt động của máy chủ hoặc phụ trợ của ứng dụng và tìm lỗi trong ứng dụng

Trực tiếp Giảm giá cuối năm. Trở thành Nhà phát triển Full-Stack giỏi nhất 🚀

Nhận quyền truy cập vào hàng trăm nút thực hành. js, phòng thí nghiệm và trở thành nhà phát triển web toàn diện có thể tuyển dụng

  • Đảm bảo hoàn lại tiền miễn phí
  • Truy cập không giới hạn vào tất cả các khóa học nền tảng
  • Bao gồm 100 dự án thực hành
  • Trợ giúp AI tức thì dựa trên GPT-3
  • nút có cấu trúc. js Full-Stack Lộ trình để có được một công việc
  • Cộng đồng độc quyền cho các sự kiện, hội thảo

Go Pro Now (Giảm giá 50% trong thời gian có hạn)

Mục lục

setTimeout()

setTimeout() được sử dụng để lên lịch thực thi mã sau một khoảng thời gian cụ thể. Nó rất giống với chức năng của JavaScript “cửa sổ. setTimeout()” API. Hàm này chấp nhận một hàm sẽ được thực thi dưới dạng đối số đầu tiên và độ trễ của  "không có thời gian" được chuyển thành đối số thứ hai. Chúng ta cũng có thể thêm nhiều đối số được truyền vào hàm. Đây là một đoạn mã của lý thuyết chúng tôi đã thực hiện cho đến bây giờ

function myFunction(args) {
console.log(`args was => ${args}`);
}
setTimeout(myFunction, 1700, 'fun');

Đoạn mã trên sẽ chạy myFunction() sau 1700 mili giây hoặc 1. 7 giây do phương thức có tên setTimeout(). Điều này không tuân theo giới hạn thời gian chính xác nhưng nó đảm bảo rằng hàm ít nhất sẽ thực thi trong giới hạn thời gian được khai báo trong phương thức. Đó là do các khối chức năng khác và vòng lặp sự kiện đang chạy đẩy quá trình thực thi vượt quá thời gian.  

Đặt thời gian chờ nodejs

Đầu ra của setTimeout()

setTimeout() cung cấp đầu ra dưới dạng đối tượng Hết giờ được sử dụng để tham chiếu thời gian chờ đã đặt. Đối tượng tham chiếu này có thể được sử dụng để xóa thời gian chờ bằng cách sử dụng phương thức clearTimeout() và để thay đổi hành vi của hàm.  

Các đối tượng hết thời gian được trả về là setInterval và setTimeout. Nó cung cấp hai chức năng chính ref() và unref() nhằm tăng cường hành vi Hết giờ. Phương thức Hết thời gian được lên lịch sử dụng một tập hợp các chức năng trên đối tượng. Hành vi của đối tượng được thay đổi một chút khi sử dụng phương thức Unref() của Timeout. Nếu mã cuối cùng được thực thi thì đối tượng Hết giờ không được gọi, nó sẽ xóa tiến trình. Tương tự như vậy, một đối tượng Hết giờ có unref() trên nó có thể bị loại bỏ bằng cách gọi phương thức ref() trên cùng một đối tượng Hết giờ. Điều này đảm bảo thực thi đúng mã, tuy nhiên, hành vi chính xác ban đầu không được lưu trữ lại vì lý do hiệu suất.   

Dưới đây là đoạn mã để mô tả những gì chúng tôi đã làm cho đến bây giờ

const timerObject = setTimeout(() => {
console.log('will i run this code?');
});
/* if kept alone, the statement will keep the above timeout
// fromexecuting the code, because the timeout will be the only thing keeping the //program from exiting one timerObject.unref();
*/ we can bring it back to life by calling ref() inside an immediate
setImmediate(() => {
timerObject.ref();
})

setInterval()

Để thực hiện vòng lặp vô hạn, setInterval() được sử dụng. Nó lấy một hàm và thời gian trễ làm đối số và chạy thời gian vô hạn với độ trễ được đưa ra trong hàm. Nó tương tự như setTimeout() trong đó các đối số bổ sung có thể được chuyển sau một khoảng thời gian trễ, sau đó sẽ chuyển vào lời gọi hàm. Độ trễ không cố định giống như setTimeout() do vòng lặp sự kiện và do đó được coi là độ trễ gần đúng.  

Dưới đây là đoạn mã để hiểu rõ hơn về setInterval()

function intervalFunction() {
console.log('Infinite loop!');
}
setInterval(intervalFunction, 1700);

Trong trường hợp này, intervalFunction() sẽ thực thi trong khoảng 1700 mili giây hoặc 1. 7 giây cho đến khi nó dừng lại. Nó cũng trả về đối tượng Hết thời gian giống như phương thức setTimeout() có thể được sử dụng làm tham chiếu và có thể được sử dụng để sửa đổi khoảng thời gian đã đặt.  

Làm cách nào để sử dụng Thời gian chờ rõ ràng?

setTimeout(), setInterval() trả về một đối tượng hẹn giờ được sử dụng làm tham chiếu của đối tượng Timeout đã đặt. Bỏ qua đối tượng đã đặt thành chức năng rõ ràng tương ứng, việc thực thi đối tượng trở về trạng thái chờ. Các chức năng được sử dụng để làm điều này là clearTimeout() và clearInterval()

Dưới đây là đoạn mã để hiểu nó phải tốt hơn

const timeoutObject = setTimeout(() => {
console.log('timeout beyond time');
}, 1500);
const intervalObject = setInterval(() => {
console.log('interviewing the interval');
}, 500);
clearTimeout(timeoutObject);
clearInterval(intervalObject);

Hãy cho chúng tôi hiểu cách setTimeout() hoạt động bằng một ví dụ. Cân nhắc một đoạn mã nhất định.

for (i = 1; i <= 5; i++){
setTimeout(() => {
console.log(i);
},i*1000)
}
console.log('Hello!');

Trong đoạn mã trên, vòng lặp đang thực thi từ các giá trị trong khoảng từ 1 đến 5. Với mỗi lần lặp, hàm setTimeout() sẽ lưu biến tham chiếu với một số nhất định. Khi giá trị của biến tham chiếu (trong trường hợp của chúng ta là 'i') được gán '6', vòng lặp sẽ ngắt và câu lệnh tiếp theo được thực thi. Sau khi ngăn xếp cuộc gọi được làm trống và thời gian đã đề cập cho setTimeout() trôi qua, mã trong hàm sẽ được thực thi và thông báo “Xin chào. ” được in ra sau đó nó cho giá trị của i là 6. Đây là cách hàm setTimeout() trong Node js hoạt động

 

Trực tiếp Giảm giá cuối năm. Trở thành Nhà phát triển Full-Stack giỏi nhất 🚀

Nhận quyền truy cập vào hàng trăm nút thực hành. js, phòng thí nghiệm và trở thành nhà phát triển web toàn diện có thể tuyển dụng

  • Đảm bảo hoàn lại tiền miễn phí
  • Truy cập không giới hạn vào tất cả các khóa học nền tảng
  • Bao gồm 100 dự án thực hành
  • Trợ giúp AI tức thì dựa trên GPT-3
  • nút có cấu trúc. js Full-Stack Lộ trình để có được một công việc
  • Cộng đồng độc quyền cho các sự kiện, hội thảo

Go Pro Now (Giảm giá 50% trong thời gian có hạn)

Học lập trình trên codedamn

Codedamn là một nền tảng mã hóa tương tác với rất nhiều khóa học lập trình hấp dẫn có thể giúp bạn có được công việc viết mã đầu tiên của mình. Đây là cách

  • Bước 1 - Tạo một tài khoản miễn phí
  • Bước 2 - Duyệt qua các lộ trình có cấu trúc (đường dẫn học tập) hoặc xem tất cả các khóa học
  • Bước 3 - Thực hành viết mã miễn phí trên các sân chơi lập trình
  • Bước 4 - Nâng cấp lên tài khoản thành viên Pro để mở khóa tất cả các khóa học và nền tảng

Lập trình là một trong những công việc có nhu cầu cao nhất hiện nay. Học lập trình có thể thay đổi tương lai của bạn. Tất cả tốt nhất

Làm cách nào để sử dụng thời gian chờ trong Node JS?

Đây là một ví dụ về điều đó. function myFunc(arg) { console. log(`arg was => ${arg}`); . 5 giây) càng tốt do lệnh gọi setTimeout(). The above function myFunc() will execute as close to 1500 milliseconds (or 1.5 seconds) as possible due to the call of setTimeout() .

Thời gian chờ mặc định cho NodeJS là gì?

Trong nút. js, thời gian chờ mặc định của máy chủ là 0 mili giây cho phiên bản mới nhất và 2 phút i. e. (120000 mili giây) cho phiên bản cũ hơn .

Làm cách nào để thêm độ trễ trong NodeJS?

Một cách để trì hoãn việc thực thi một hàm trong Node JS là sử dụng hàm seTtimeout() . Chỉ cần đặt mã bạn muốn trì hoãn trong cuộc gọi lại.

Làm cách nào để đặt thời gian chờ trong Express JS?

Bạn có thể thử. return await new Promise((resolve) => setTimeout(() => { resolve(resp); }, 3000), ); Trong đoạn mã trên . Thay đổi nó theo yêu cầu của bạn.