为什么 Node.js 在退出之前不等待 Promise 解析?

Waj*_*ath 5 javascript node.js promise

当我执行以下代码时,我认为 Node.js 会等到我们调用resolve. 到那时myPromise将处于该<pending>状态。那为什么节点在解析之前就退出了呢?

下面的代码立即退出!

const myPromise = new Promise(resolve => {
  // nothing doing with the resolve
});

myPromise
  .then(() => console.log('result'))
  .catch(error => console.log('error', error));
Run Code Online (Sandbox Code Playgroud)

更新 1:我将 JavaScript 重命名为 Node.js 以避免混淆。

T.J*_*der 9

下面的代码立即退出!

保持 Node.js 进程运行的是活跃的正在进行的工作或它的潜力(挂起的计时器、可能接收消息的打开套接字等)。例如,如果您的代码使用了readFilefromfs/promises并且您使用的承诺来自 from,Node.js 不会在您显示的代码末尾终止,因为正在进行一个操作(读取文件) 。来自Node.js 事件循环、计时器和process.nextTick() 指南

在每次运行事件循环之间,Node.js 都会检查是否正在等待任何异步 I/O 或计时器,如果没有,则彻底关闭。

但在您的示例中,没有任何进展,Node.js 没有等待任何内容,因此它退出。