Menu
CoddyTech

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。依赖这段文本的操作应写在这里。目前,文件已提供,读取会成功。下一步将处理读取失败的情况。

challenge icon

挑战

简单

先运行 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 在线编辑器