【发布时间】:2016-06-03 03:06:05
【问题描述】:
考虑这个模拟查询数据库并在 2 秒后通过 Promise 返回一些记录的函数:
function query() {
var recs = [1,2,3];
return new Promise(r => setTimeout(() => r(recs), 2000))
}
如果我添加以下语句:
query().then(console.log);
并在 with 节点上运行脚本,它会暂停 2 秒,打印出记录,然后按预期返回。
另一方面,如果我将该行替换为完全相同的 promise 数组:
Array(5).map(x => query().then(console.log));
脚本立即返回,不打印任何内容。为什么节点在退出之前等待单个promise返回,但当有5个未解决的promise数组时立即退出?
【问题讨论】:
-
如果你想等待一个已解决的承诺来执行另一个这个帖子希望你:stackoverflow.com/questions/37578795/…
标签: javascript node.js promise