Promise 的结果
本课属于 Coddy Node.js 学习旅程的“Node.js 基础”单元。第 19 课,共 33 课。
Promise 表示稍后会得到的结果。与 node:fs 中的回调版本不同,node:fs/promises 中的 readFile 不接收回调,而是返回一个 promise。读取成功时,它的 .then 方法会接收一个用于处理结果的函数。
import { readFile } from 'node:fs/promises';
readFile('name.txt', 'utf8').then((name) => {
console.log('Hello, ' + name);
});参数 name 保存的是文件文本,而不是 promise。依赖这段文本的操作应写在这里。目前,文件已提供,读取会成功。下一步将处理读取失败的情况。
挑战
简单先运行 practice.js:它会打印 Note: [object Promise]。程序把文本和 Promise 组合在一起,而不是和最终结果组合。
使用 .then 回调打印读取完成后的内容,格式为 Note: 后接文件文本。不提供参数时,会读取 note.txt,输出 Note: Buy milk。试试 other.txt:预期输出 Note: Call Ada。
亲手试试
import { readFile } from 'node:fs/promises';
const file = process.argv[2] ?? 'note.txt';
console.log('Note: ' + readFile(file, 'utf8'));
Node.js 基础中的所有课
自己练习: Express 在线编辑器