Promise
Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 15 dari 24.
Callback di dalam callback sulit diikuti, dan setiap callback harus mengingat untuk memeriksa err.
node:fs/promises mengembalikan promise: sebuah object yang mewakili hasil yang akan tiba nanti. .then(fn) berjalan dengan hasil tersebut, .catch(fn) berjalan jika ada langkah sebelumnya yang gagal, dan .finally(fn) berjalan dalam kedua kondisi.
import { readFile } from 'node:fs/promises';
readFile('poem.txt', 'utf8')
.then((text) => console.log(text.length + ' characters'))
.catch(() => console.log('No poem today'))
.finally(() => console.log('Bye'));Error yang dilempar di dalam .then juga masuk ke .catch, sehingga satu penangan mencakup pembacaan dan penguraian. Promise yang gagal tanpa .catch akan membuat program crash.
Tantangan
Mudah- Tulis ulang
count.jsdenganreadFiledarinode:fs/promisesdan.then. - Jika file tidak ditemukan, sekarang akan mencetak
No notes yet, dari.catch. Donetetap muncul terakhir, dari.finally.
Jalankan node count.js, lalu node count.js nothere.json.
Coba sendiri
import fs from 'node:fs';
const file = process.argv[2] ?? 'notes.json';
console.log('Reading...');
fs.readFile(file, 'utf8', (err, text) => {
if (err) {
console.log(`Cannot read ${file}`);
} else {
console.log(`${JSON.parse(text).length} notes`);
}
console.log('Done');
});
Semua pelajaran di Dasar-Dasar Node.js
1Menjalankan JavaScript di Node
Halo, NodeArgumen Baris PerintahPerintahLatihan sendiri: Playground Express