Timer
Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 19 dari 24.
Pengingat harus menghitung mundur di layar, selangkah demi selangkah, lalu berhenti.
setInterval(fn, ms) menjalankan fn setiap ms milidetik hingga clearInterval(id) menghentikannya; setTimeout berjalan sekali. Program berakhir hanya saat tidak ada timer yang tersisa, jadi interval yang tidak pernah kamu hentikan akan membuatnya terus berjalan.
let lap = 1;
const id = setInterval(() => {
console.log(`Lap ${lap}`);
lap += 1;
if (lap > 3) {
clearInterval(id);
}
}, 500);Terminal menghentikan program setelah 5 detik, sehingga kamu bisa mengetahui jika lupa memanggil clearInterval.
Tantangan
Mudahremind <n>mencetak3,2,1, lalu teks catatan n, satu baris setiap 200 ms, dan program berakhir.- Angka yang tidak valid memberikan respons seperti
done:No note <word>dan kode keluar 1.
Jalankan node notes.js remind 1, lalu node notes.js remind 9.
Coba sendiri
// Alat catatanmu dimulai di sini.
import { rmSync } from 'node:fs';
import path from 'node:path';
import { formatNote } from './format.js';
import stats from './legacy/stats.cjs';
import store from './store.js';
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
const noteNumber = (word) => {
const n = Number(word);
if (!Number.isInteger(n) || n < 1 || n > store.notes.length) {
console.error(`No note ${word}`);
process.exit(1);
}
return n;
};
if (command === 'add') {
const n = await store.add(text);
console.log(`Saved note ${n}.`);
} else if (command === 'list') {
const owner = process.env.NOTES_OWNER ?? 'you';
console.log(`Notes for ${owner}`);
if (store.notes.length === 0) {
console.log('No notes yet');
}
const lines = store.notes.map((note, i) => formatNote(i + 1, note));
if (store.settings.sort === 'newest') {
lines.reverse();
}
lines.forEach((line) => console.log(line));
} else if (command === 'where') {
const file = path.join(process.cwd(), 'notes.json');
console.log(file);
console.log(path.basename(file));
} else if (command === 'stats') {
console.log(`${store.notes.length} notes, ${stats.countWords(store.notes)} words`);
} else if (command === 'done') {
const removed = await store.remove(noteNumber(words[0]));
console.log(`Done: ${removed}`);
} else if (command === 'clear') {
rmSync('notes.json', { force: true });
console.log('Deleted notes.json');
} else {
if (command) {
console.error(`Unknown command: ${command}`);
}
console.error('Usage: node notes.js <command> [words]');
process.exit(1);
}
Semua pelajaran di Dasar-Dasar Node.js
1Menjalankan JavaScript di Node
Halo, NodeArgumen Baris PerintahPerintahLatihan sendiri: Playground Express