Khi Promise thất bại
Thuộc phần Kiến thức cơ bản về Node.js trong hành trình Node.js của Coddy. Bài học 20 trên 33.
Một promise cũng có thể thất bại, chẳng hạn khi tệp không tồn tại. Trường hợp đó gọi là bị từ chối. .catch cung cấp code để chạy khi có lỗi. .finally chạy sau khi thành công hoặc thất bại, rất hữu ích để hiển thị thông báo kết thúc.
readFile('weather.txt', 'utf8')
.then((text) => console.log(text))
.catch(() => console.log('No file'))
.finally(() => console.log('Finished'));Khi thao tác đọc thất bại, callback thành công sẽ bị bỏ qua. Ví dụ này in ra No file rồi đến Finished. Thông báo lỗi nên đặt trong catch, để thao tác đọc thành công không in thông báo đó.
Thử thách
DễChạy practice.js trước: tệp bị thiếu gây ra lỗi ENOENT chưa được xử lý.
Giữ lại callback khi đọc thành công. Thêm .catch để in ra No notes yet khi thất bại, sau đó thêm .finally để in ra Done trong cả hai trường hợp. Khi không có đối số, các dòng là No notes yet và Done. Thử note.txt: các dòng là Buy milk và Done.
Tự làm thử
import { readFile } from 'node:fs/promises';
readFile(process.argv[2] ?? 'missing.txt', 'utf8').then((text) => console.log(text));
Tất cả bài học trong Kiến thức cơ bản về Node.js
1Chạy JavaScript trên Node
Xin chào, NodeĐọc lệnhĐối số dòng lệnhCác lệnh4Node bất đồng bộ
Sử dụng kết quả callbackCallbackKết quả PromiseKhi Promise thất bạiPromiseChờ một giá trịAsync và awaitHai lần đọc độc lậpPromise.allEvent LoopBộ hẹn giờTự luyện tập: Playground Express