Menu
CoddyTech

使用回调结果

本课属于 Coddy Node.js 学习旅程的“Node.js 基础”单元。第 17 课,共 33 课。

文件读取可能会在程序的下一行已经运行之后才完成。回调是传递给另一个函数、供它稍后调用的函数。readFile 会在文件准备好时调用你的函数。它会先传入错误,再传入文件文本。

readFile('greeting.txt', 'utf8', (err, text) => {
    if (err) return;
    console.log(text);
});

把需要用到文本的操作放在这个函数里。在函数外部,文本还没有到达。初始代码提供了导入语句和错误分支;重点是使用成功读取的结果。

challenge icon

挑战

简单

先运行 practice.js。它会失败,因为最后一行运行时,text 仍未定义;文件读取还没有完成。

把需要文件文本的操作移到读取完成后执行。保留错误分支,并以大写形式输出文件内容。不再需要外层的 text 变量后,就将其移除。不提供参数时,预期输出为 BUY MILK。使用 other.txt 时,预期输出为 CALL ADA。

亲手试试

import { readFile } from 'node:fs';
const file = process.argv[2] ?? 'note.txt';
let text;
readFile(file, 'utf8', (err, contents) => {
    if (err) return;
    text = contents;
});
console.log(text.toUpperCase());

Node.js 基础中的所有课

自己练习: Express 在线编辑器