为什么从未调用过该Promise的回调?

时间:2019-01-30 11:07:16

标签: node.js promise async-await

我有一个简单的脚本,我们称它为hello.js

async function main() {
    console.log("Hello world!");
}

main().then(() => "All done").catch(e => console.err(e));

我正在使用Node.js(版本10.15.0)运行它:

node hello.js

我收到的所有输出信息是

Hello world

我希望有类似的东西

Hello world
All done

我在理解诺言如何工作方面还是感到困难吗?

2 个答案:

答案 0 :(得分:2)

您在那里缺少控制台日志。

main().then(() => console.log("All done")).catch(e => console.err(e));

答案 1 :(得分:1)

查看您要传递给then的函数。

const f = () => "All done";

f();

公正返回一个字符串。

如果您希望将其记录在某处,则需要对其进行记录。

例如:

async function main() {
  console.log("Hello world!");
}

main()
  .then(() => "All done")
  .then(string => console.log(string))
  .catch(e => console.err(e));