在这种情况下什么是蹦床?

时间:2017-04-26 09:34:27

标签: javascript promise

Promises/A+ spec (section 3)中说:

  

由于promise实现被认为是平台代码,因此可能   本身包含一个任务调度队列或“trampoline”,其中   处理程序被称为。

在这种背景下什么是蹦床?

1 个答案:

答案 0 :(得分:1)

trampoline是一种控制结构,它可以实现递归逻辑,同时避免基于堆栈的语言的限制而无需尾调用优化。

嵌套的promise链的递归性质使其成为promise实现的递归解决方案。

据推测,蹦床在Promise / A +规范中被确定为一种常用的实施方法,即使它在某些语言中没有必要或者确实可能不是最佳的。

例如,ES2015在JavaScript中引入了尾部调用优化,使得(至少用户登陆)蹦床,可能不再需要。 Promises / A +规范是在ES2015之前的几年写的。