Menu
CoddyTech

Kết quả Promise

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 19 trên 33.

Một promise biểu thị kết quả sẽ có sau. Khác với phiên bản dùng callback trong node:fs, readFile từ node:fs/promises không nhận callback và trả về một promise. Phương thức .then nhận một hàm để gọi kèm kết quả khi đọc thành công.

import { readFile } from 'node:fs/promises';
readFile('name.txt', 'utf8').then((name) => {
    console.log('Hello, ' + name);
});

Tham số name chứa nội dung tệp, không phải một promise. Phần việc phụ thuộc vào nội dung đó cần đặt ở đây. Hiện tại, tệp đã được cung cấp và thao tác đọc thành công. Bước tiếp theo sẽ xử lý trường hợp đọc thất bại.

challenge icon

Thử thách

Dễ

Chạy practice.js trước: chương trình in ra Note: [object Promise]. Chương trình đang ghép văn bản với promise thay vì kết quả cuối cùng của promise.

Dùng callback .then để in nội dung đã đọc xong theo dạng Note: , sau đó là văn bản trong tệp. Nếu không có đối số, chương trình đọc note.txt và cho kết quả Note: Buy milk. Thử với other.txt: kết quả mong đợi là Note: Call Ada.

Tự làm thử

import { readFile } from 'node:fs/promises';
const file = process.argv[2] ?? 'note.txt';
console.log('Note: ' + readFile(file, 'utf8'));

Tất cả bài học trong Kiến thức cơ bản về Node.js

Tự luyện tập: Playground Express