目前我正在使用 NodeJS 进行 promises 和 callbacks 的练习。 这是我提供的 2 个代码片段,第一个片段具有正常功能,具有
fs.readFile
(异步),第二个片段具有正常功能,在 Promise 中具有fs.readFile
(异步)。
如果我执行 code-1 那么输出是:
你好
123
如果我执行代码 2 那么输出是:
123
你好
请帮助我理解这段代码的行为。
谢谢。
代码-1:
const fs = require("fs");
function a() {
console.log("hi");
// let say data in 'read.txt' is "123".
return fs.readFile("read.txt", (error, data) => {
if (error) return error;
console.log(data.toString());
});
}
async function c() {
await a();
console.log("hello");
}
c();
代码2:
const fs = require("fs");
function a() {
console.log("hi");
// let say data in 'read.txt' is "123".
return new Promise((res, rej) => {
fs.readFile("read.txt", (error, data) => {
if (error) rej(error);
console.log(data.toString());
res("resolved");
});
});
}
async function c() {
await a();
console.log("hello");
}
c();