Menu
CoddyTech

等待一个值

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

await 表达式可以让你把读取后的下一步操作写在后面,而不是写在 then 回调中。它会等待这个 Promise,并返回它的结果。读取等待期间,其他工作仍然可以运行。

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

如果不使用 await,text 就会保存这个 Promise,而 Promise 没有字符串方法。这些文件是模块,所以可以在函数外使用 await。在函数内使用时,要将函数标记为 async。异步函数也会向调用它的代码返回一个 Promise。

challenge icon

挑战

简单

先运行 practice.js。错误提示 text.toUpperCase is not a function:text 保存的是一个 Promise,而不是文件文本。

让 text 保存读取完成后的内容,再让程序使用它。保留异步文件函数。再次运行,输出为 BUY MILK。

使用参数 other.txt 运行:提供的第二个文件必须输出 CALL ADA。保留提供的文件名表达式。

亲手试试

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

Node.js 基础中的所有课

自己练习: Express 在线编辑器