获取Javascript中的未来调用堆栈

获取Javascript中的未来调用堆栈,javascript,jquery,Javascript,Jquery,为了更详细地阐述这个问题,我想知道调用堆栈(以编程方式处理)中将要执行的调用是什么,类似于我们如何使用F10在开发人员选项中进行调试,javascript引擎知道哪些调用将要执行。我想阅读代码中的未来调用堆栈 function a() { f(); b(); } function b() { c(); } function c() { d(); } function d() { ... } function f() { // identify which are the calls that

为了更详细地阐述这个问题,我想知道调用堆栈(以编程方式处理)中将要执行的调用是什么,类似于我们如何使用F10在开发人员选项中进行调试,javascript引擎知道哪些调用将要执行。我想阅读代码中的未来调用堆栈

function a() { f(); b(); }
function b() { c(); }
function c() { d(); }
function d() { ...  }
function f() { // identify which are the calls that are pending in the call stack.  }

在上面的示例中,我想知道在函数f中,函数调用b、c和d在调用堆栈中仍处于挂起状态。

没有这样的堆栈(在CPU中的分支预测器管道之外,它非常小且不可访问)。另外:提供这些信息是一个令人惊讶的坏主意,尤其是因为——就像所有形式的时间旅行一样——你有一个悖论,如果
f
知道接下来会发生什么,
f
可以做些什么来改变这一点。

如果你给我们提供了一个更实际的例子,我们很可能会向您推荐延期物品/期票。使用这些功能,您可以在链中注册函数,并在所有函数都完成时收到通知。

现在还不清楚您的目标是什么,这听起来很像一个问题。你真正的目标是什么?@T.J.Crowder目标是,我希望只有在最后一个函数d执行时,函数f才会执行一个代码。@Sufiyanasari:你必须让
f
返回一个函数,该函数沿着链传递到
d
,后者调用它。同样,一个真实的例子可以让人们更好地帮助你,但这可能是一个不同的问题。以上问题的答案是“你不能那样做”。:-)调用堆栈是以前调用的堆栈,而不是将来调用的堆栈。代码在执行之前不知道要做什么,但它不知道从何而来,并且该信息记录在
调用堆栈中。