【发布时间】:2017-05-08 08:33:37
【问题描述】:
以下是基于我在节点中运行的以下示例中注意到的行为的一些简单问题:
Q('THING 1').then(console.log.bind(console));
console.log('THING 2');
这个的输出是:
> "THING 2"
> "THING 1"
问题:
1) 为什么Q 实现在对立即已知的值运行回调之前等待?为什么Q 不够聪明,无法让第一行在第二行运行之前同步发出其输出?
2) 输出"THING 2" 和"THING 1" 之间的时间间隔是多少?是单进程tick吗?
3) 深深包裹在 promise 中的值是否存在性能问题?例如,Q(Q(Q("THING 1"))) 是否异步等待 3 倍的时间才能完成,即使它可以有效地同步解决?
【问题讨论】: