What happens in the following Node.js code if 'file.txt' does not exist?
4 phương ánCó giải thích
const fs = require('fs');
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) console.log('Error occurred');
else console.log(data);
});
console.log('Reading file');Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "Reading file Error occurred". Hàm fs.readFile là bất đồng bộ: nó giao việc đọc tệp cho libuv rồi trả về ngay, callback chỉ được gọi ở một lượt event loop sau khi thao tác I/O xong. Lần theo mã: lệnh gọi readFile đăng ký callback, tiếp theo console.log('Reading file') chạy đồng bộ nên dòng Reading file được in trước; sau đó việc mở file.txt thất bại với lỗi ENOENT, callback nhận err khác null nên vào nhánh if và in Error occurred. "Error occurred Reading file" sai thứ tự vì callback không thể chạy trước phần mã đồng bộ còn lại của chương trình. "Logs reading then handles file absence gracefully" mô tả bằng lời đúng tinh thần nhưng không cho biết chính xác những gì được in, trong khi câu hỏi cần kết quả cụ thể trên console, nên phương án ghi rõ hai dòng theo đúng thứ tự mới là lựa chọn chính xác. "Only reading log if file check skipped" sai vì mã không có bước kiểm tra tệp nào bị bỏ qua, cả hai lệnh log đều chạy.