Menu
CoddyTech

Chờ một giá trị

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

Biểu thức await cho phép bạn viết bước tiếp theo sau khi đọc xong, thay vì đặt bước đó bên trong callback then. Nó chờ promise này rồi trả về kết quả của promise. Các công việc khác vẫn có thể chạy trong lúc chờ đọc.

const text = await readFile('name.txt', 'utf8');
console.log(text.toUpperCase());

Nếu không có await, text sẽ chứa promise, vốn không có phương thức chuỗi. Các tệp này là module, nên bạn có thể dùng await bên ngoài hàm. Bên trong hàm, hãy đánh dấu hàm là async. Hàm async cũng trả về một promise cho bên gọi nó.

challenge icon

Thử thách

Dễ

Chạy practice.js trước. Lỗi cho biết text.toUpperCase is not a function: text chứa một promise, không phải nội dung tệp.

Để text chứa kết quả đọc tệp hoàn tất trước khi chương trình sử dụng nó. Giữ nguyên hàm tệp bất đồng bộ. Chạy lại: đầu ra là BUY MILK.

Chạy với đối số other.txt: tệp thứ hai được cung cấp phải in ra CALL ADA. Giữ nguyên biểu thức tên tệp được cung cấp.

Tự làm thử

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

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