如何在 Node.js 中首先执行所有控制台日志?

How Does All Console Logs Get Executed First In Node.js?

我理解 Node.js 是异步的,使用事件循环执行 I/O 任务。 我知道您的代码将首先从上到下进行解析,然后再执行用户定义的回调(如果有的话)。

根据我的理解,写入控制台也是一种 I/O 操作形式(也许我认为它也是一个 I/O 任务是错误的。如果我错了需要解释)

所以我不明白的是 how/why 是否首先执行所有控制台日志,无论脚本中的位置如何,因为它也是 I/O 任务的一种形式?

事实上,NodeJs中的函数和JavaScript是同步的,但是,你可以把你的函数改成异步的。下面我引用了例子。

1. resetPassword: async function (req, res, next) {
2.    let user = await userService.resetPassword(res.body.email);
3.    console.log(user);
4. }

在上面的这个例子中,我创建了基于异步的函数,在第 2 行将等待处理直到响应。

最后,第 3 行将打印一些关于用户的信息。

是的,console.log也是I/O操作的一种形式,您可以查看this答案了解更多详情。