Javascript memeriksa apakah timer sedang berjalan

Anda dapat menggunakan Node. utilitas js untuk menjadwalkan eksekusi kode Anda. Modul pengatur waktu, tidak seperti kebanyakan Node. modul js, tidak diimpor. Untuk mematuhi JavaScript browser API, metode ini dapat diakses secara global

Node. Modul js Timer berisi beberapa fungsi yang memungkinkan Anda mengeksekusi blok kode atau fungsi setelah jangka waktu tertentu. Anda tidak perlu menggunakan require() untuk mengimpor modul Timer karena bersifat global

Dalam posting ini, saya akan menjelaskan dan mendemonstrasikan apa itu timer, bagaimana menggunakannya, bagaimana sintaksnya terlihat, dan bagaimana Anda dapat menggunakannya dalam aplikasi Anda. Misalnya, jika Anda ingin mengambil data dari REST API pada interval tertentu, Anda dapat dengan mudah melakukannya dengan pengatur waktu. Jadi, meskipun Anda tidak terbiasa dengan JavaScript atau penghitung waktu, postingan ini akan membantu Anda memahami konsep-konsep ini. Untuk informasi selengkapnya, lihat kursus Full Stack.   

The Event Loop - Primer Cepat

Node. js adalah platform single-threaded, event-driven yang dapat menjalankan non-blocking, kode asinkron. Node ini. Fitur js membuatnya hemat memori. Meskipun JavaScript adalah single-threaded, event loop memungkinkan Node. js untuk melakukan operasi I/O non-pemblokiran. Ini dilakukan dengan mendelegasikan tugas ke sistem operasi kapanpun dan dimanapun memungkinkan

Karena sebagian besar sistem operasi multi-utas, mereka dapat menangani banyak operasi yang berjalan di latar belakang. Ketika salah satu dari operasi ini selesai, kernel akan memberi tahu Node. js, dan panggilan balik yang terkait dengan operasi tersebut ditambahkan ke antrean acara, yang pada akhirnya akan dieksekusi

Fitur Loop Acara

  • Loop peristiwa adalah loop tak terbatas yang menunggu tugas, mengeksekusinya, lalu tidur hingga lebih banyak tugas diterima
  • Saat tumpukan panggilan kosong, mis. e. , tidak ada tugas yang sedang berlangsung, loop acara mengeksekusi tugas dari antrian acara
  • Kita bisa menggunakan panggilan balik dan janji di loop acara
  • Perulangan peristiwa menjalankan tugas dalam urutan terbalik, dimulai dari yang terlama

Contoh

console.log("One");
setTimeout(function(){
console.log("Two");
}, 1000);
console.log("Three");

Keluaran

Satu

Tiga

Dua

Pernyataan log konsol pertama didorong ke tumpukan panggilan dalam contoh di atas, dan "Satu" dicatat di konsol sebelum tugas muncul dari tumpukan. Setelah itu, setTimeout ditambahkan ke antrean, tugas dikirim ke sistem operasi, dan pengatur waktu tugas diatur. Setelah itu, tugas ini dihapus dari tumpukan. Pernyataan log konsol ketiga kemudian didorong ke tumpukan panggilan, "Tiga" dicatat di konsol, dan tugas dihapus dari tumpukan

Timer dalam JavaScript

Timer digunakan dalam JavaScript untuk menjalankan tugas atau fungsi pada waktu tertentu. Timer pada dasarnya digunakan untuk menunda eksekusi programor untuk mengeksekusi kode JavaScript secara berkala. Anda dapat menunda eksekusi kode dengan menggunakan pengatur waktu. Akibatnya, saat terjadi peristiwa atau halaman dimuat, kode tidak menyelesaikan eksekusinya pada saat yang bersamaan

Spanduk iklan di situs web, yang berubah setiap 2-3 detik, adalah contoh pengatur waktu terbaik. Spanduk iklan ini diputar secara berkala di situs web seperti Flipkart. Untuk mengubahnya, Anda mengatur interval waktu

JavaScript menyediakan dua fungsi pengatur waktu, setInterval() dan setTimeout(), yang membantu menunda eksekusi kode dan memungkinkan satu atau beberapa operasi dilakukan berulang kali

setTimeout()

Fungsi setTimeout() memungkinkan pengguna untuk menunda eksekusi kode. Metode setTimeout() menerima dua parameter, salah satunya adalah fungsi yang ditentukan pengguna, dan yang lainnya adalah parameter waktu untuk menunda eksekusi. Parameter waktu, yang opsional untuk dilewati, menyimpan waktu dalam milidetik (1 detik = 1000 milidetik)

setInterval()

Metode setInterval mirip dengan fungsi setTimeout() dalam beberapa hal. Itu mengulangi fungsi yang ditentukan setelah interval waktu. Alternatifnya, Anda dapat mengatakan bahwa suatu fungsi dijalankan berulang kali setelah jangka waktu tertentu yang ditentukan oleh pengguna dalam fungsi ini

Timer di Node. js-setTimeout()

setTimeout() dapat digunakan untuk mengeksekusi kode setelah jumlah milidetik yang ditentukan. Fungsi ini setara dengan jendela. setTimeout() dari browser JavaScript API, tetapi tidak ada string kode yang dapat diteruskan untuk dieksekusi

setTimeout() mengambil fungsi untuk dieksekusi sebagai argumen pertama dan penundaan milidetik didefinisikan sebagai angka sebagai yang kedua. Argumen tambahan mungkin diberikan, dan ini akan diteruskan ke fungsi. Sebagai contoh, perhatikan hal berikut

MenggunakansetTimeout()

Interval waktu tunggu tidak dijamin untuk dieksekusi setelah jumlah milidetik yang tepat. Ini karena kode lain apa pun yang memblokir atau menahan loop peristiwa akan menunda eksekusi batas waktu. Satu-satunya jaminan adalah batas waktu tidak akan dieksekusi lebih cepat dari interval batas waktu yang ditentukan

setTimeout(function A() { 
    return console.log('Hello World!'); 
}, 2000); 
console.log('Executed before A');
_

clearTimeout()

Metode clearTimeout() menonaktifkan timer yang sebelumnya disetel dengan metode setTimeout()

Nilai ID yang dikembalikan oleh setTimeout() diteruskan ke metode clearTimeout() sebagai parameter

Sintaksis

clearTimeout(id_of_settimeout)

Contoh.  

function welcome () {   
    console.log("Welcome to Knowledgehut!");   
  }   
  var id1 = setTimeout(welcome,1000);   
  var id2 = setInterval(welcome,1000);   
  clearTimeout(id1);
How to use Timers in Node.js

Timer di Node. js -setImmediate()

Untuk mengeksekusi kode di akhir siklus pengulangan, gunakan metode setImmediate(). Dalam istilah awam, metode ini membagi tugas yang membutuhkan waktu lebih lama untuk diselesaikan, untuk menjalankan fungsi callback yang dipicu oleh operasi lain seperti event

Sintaksis

biarkan directId = setImmediate(callbackFunction, [param1, param2,. ]);
biarkan Id segera = setImmediate(callbackFunction);

Fungsi yang akan dieksekusi akan menjadi argumen pertama setImmediate(). Saat fungsi dijalankan, argumen tambahan apa pun akan diteruskan ke sana

Sekarang perhatikan perbedaan antara setImmediate() dan process. nextTick(), serta kapan harus menggunakan which

Saat memproses, setImmediate() dijalankan dalam fase Check handlers. proses. nextTick() dipanggil di awal loop acara dan di akhir setiap fase

proses. nextTick() memiliki prioritas lebih tinggi daripada setImmediate()

setImmediate(() => console.log('I run immediately')) 
process.nextTick(() => console.log('But I run before that'))

Keluaran

How to use Timers in Node.js

MenggunakansetImmediate()

Beberapa fungsi setImmediate dipanggil dalam contoh berikut. Saat Anda melakukan ini, fungsi panggilan balik diantrekan untuk dieksekusi sesuai urutan pembuatannya. Setelah setiap pengulangan peristiwa, seluruh antrean callback diproses. Jika penghitung waktu langsung diantrekan dari dalam callback yang sedang dieksekusi, itu tidak akan dipicu hingga iterasi berikutnya dari loop peristiwa. Untuk memulai karir pengembangan web Anda, daftarkan diri Anda di Kursus Online Terbaik untuk Pengembangan Web.   

Contoh

setImmediate(function A() { 
    setImmediate(function B() { 
      console.log(1); 
      setImmediate(function D() {   
        console.log(2); 
      }); 
    }); 

    setImmediate(function C() { 
      console.log(3); 
      setImmediate(function E() {   
        console.log(4); 
      }); 
    }); 
}); 
console.log('Started');
How to use Timers in Node.js

clearImmediate().

Fungsi clearImmediate digunakan untuk menghapus panggilan fungsi yang dijadwalkan oleh fungsi setImmediate. Kedua fungsi ini dapat ditemukan di Node.js. modul Timer js

Contoh

console.log("Before the setImmediate call") 
let timerID = setImmediate(() => {console.log("Hello, World")}); 
console.log("After the setImmediate call") 
clearImmediate(timerID);
How to use Timers in Node.js

Timer di Node. js -setInterval()

Metode ini, tidak seperti setTimeout(), digunakan untuk mengeksekusi kode berkali-kali. Misalnya, perusahaan dapat mengirimkan buletin mingguan ke pelanggan Edge as a Service-nya. Di sinilah metode setInterval() berperan. Ini adalah loop tak terbatas yang akan terus dieksekusi selama tidak dihentikan (atau dihentikan)

Sebagai argumen kedua, setInterval() menerima argumen fungsi yang akan berjalan berkali-kali tanpa batas dengan penundaan milidetik tertentu. Dengan cara yang sama setTimeout() menerima argumen tambahan di luar penundaan, ini akan diteruskan ke pemanggilan fungsi. Penundaan, seperti setTimeout(), tidak dapat dijamin karena operasi yang mungkin tetap berada di loop peristiwa dan karenanya harus diperlakukan sebagai perkiraan

Sintaksis

biarkan intervalId = setInterval(callbackFunction, [penundaan, argumen1, argumen2,. ]);
biarkan intervalId = setInterval(callbackFunction[, delayDuration]);
biarkan intervalId = setInterval(kode, [delayDuration]);

MenggunakansetInterval()

Contoh

setInterval(function A() { 
    return console.log('Hello World!'); 
}, 1000); 

// Executed right away 
console.log('Executed before A');
How to use Timers in Node.js

setInterval(), seperti setTimeout() mengembalikan objek Timeout yang dapat digunakan untuk referensi dan memodifikasi interval yang telah ditetapkan.

Dalam contoh di atas, fungsi A() akan dijalankan setelah setiap 1000 milidetik

clearInterval()

Contoh

var si = setInterval(function A() { 
    return console.log("Hello World!"); 
}, 1000); 

setTimeout(function() { 
    clearInterval(si); 
}, 4000);
How to use Timers in Node.js

Menggunakan Timer. unref()

Modul pengatur waktu digunakan untuk menjadwalkan fungsi yang akan dipanggil nanti. Karena ini adalah API global, tidak perlu mengimpor (require("timers")) untuk menggunakannya

Kelas Timeout berisi objek (setTimeout()/setInterval()) yang dibuat secara internal untuk menjadwalkan tindakan, dan (clearTimeout()/clearInterval()) yang dapat diteruskan untuk membatalkan tindakan terjadwal tersebut. Ketika batas waktu diatur, Node. js event loop akan terus berjalan hingga clearTimeout() dipanggil. Metode setTimeout() mengembalikan objek timeout yang dapat digunakan untuk mengontrol perilaku default ini, dan mengekspor baik timeout. ref() dan batas waktu. fungsi unref()

waktu habis. ref()

Saat Timeout aktif dan (timeout. ref()) dipanggil, ia meminta Node. js event loop tidak keluar untuk waktu yang lama. Bagaimanapun, memanggil Metode ini beberapa kali tidak berpengaruh

Sintaksis

waktu habis. ref()

waktu habis. unref()

Ketika Timeout diaktifkan, Node. js event loop tidak diperlukan untuk tetap aktif. Jika ada aktivitas lain yang membuat event loop tetap berjalan, callback objek Timeout akan dipanggil setelah proses keluar. Bagaimanapun, memanggil Metode ini beberapa kali tidak berpengaruh

Sintaksis

waktu habis. unref()

Contoh

var Timeout = setTimeout(function alfa() { 
    console.log("0.> Setting Timeout", 12); 
}); 
console.log("1 =>", Timeout.ref()); 
Timeout.unref() 
Timeout.ref() 

console.log("2 =>", Timeout.unref()); 

clearTimeout(Timeout); 
console.log("3 => Printing after clearing Timeout"); 
_

Keluaran

How to use Timers in Node.js

Penjadwalan Menjadi Lebih Sederhana

Dalam tutorial ini, Anda belajar cara menjadwalkan tugas dengan Node. modul pengatur waktu js. Anda telah melihat cara menyetel waktu tunggu, pengatur waktu interval untuk tugas berulang, dan cara menggunakan setel langsung untuk melewati operasi yang lama. Anda juga telah melihat cara menghentikan operasi ini menggunakan metode clear() untuk setiap metode

Seperti mempelajari sesuatu yang baru, mempraktekkan apa yang Anda pelajari akan membuat perbedaan besar pada seberapa mudah Anda dapat melakukan tugas-tugas ini. Bagikan pemikiran dan pertanyaan Anda di komentar saat Anda mencoba apa yang telah Anda pelajari

Bagaimana cara memanggil timer dari JavaScript?

Dua metode utama untuk digunakan dengan JavaScript adalah. .
setTimeout(function, milliseconds ) Menjalankan fungsi, setelah menunggu sejumlah milidetik yang ditentukan
setInterval(function, milliseconds ) Sama seperti setTimeout(), tetapi mengulangi eksekusi fungsi secara terus menerus

Mengapa pengatur waktu JavaScript tidak dapat diandalkan?

Alasan mengapa hal ini terjadi adalah karena Javascript adalah utas tunggal .

Bagaimana cara menghentikan timer di JavaScript?

Metode clearTimeout() membersihkan timer yang disetel dengan metode setTimeout().

Apakah ada pengatur waktu di JavaScript?

Pewaktu digunakan untuk menjalankan beberapa tugas setelah interval waktu tertentu . Pada dasarnya, dengan bantuan pengatur waktu di JavaScript, kita dapat menunda eksekusi kode. Dengan bantuan fungsi pengatur waktu dalam JavaScript, kita juga dapat mencapai fungsi asinkron.