我想知道如何知道回调队列的内容。
例如,如果您考虑以下Javascript代码:
<script>
console.clear();
setTimeout( function () {console.log("Hello ")},5000);
console.log("What is inside Callback Queue ? ");
</script>
是否有将回调队列的内容打印到控制台的方法?
如果不可能以这种方式,则调试器是否可以通过在行console.log("What is inside ...?");
上添加断点来实现(我尝试使用Firefox调试器,但没有设法做到这一点)
还是其他解决方案?
感谢您的回答。
答案 0 :(得分:1)
浏览器开发人员工具的“性能”选项卡包含所有需要的信息。请执行以下操作:
过滤标记:函数调用(只是避免了很多 信息)
开始录制
重新加载(CTRL + R)
停止记录(以我的示例为例,当Hello打印到控制台时)
在瀑布中,单击5000ms之后出现的标记(以我的示例为例),并且有用的信息显示在右窗格中。
答案 1 :(得分:-1)
虽然我不确定您的最终目标是什么,但是您可以使用下面的wrapper
函数包装正在调用的函数,该函数在排队时会打印到日志中:
function wrapper(func) {
console.log(`'${func.name}' was enqueued`);
return func;
}
function foo() {
console.log('Hello')
}
setTimeout(wrapper(foo), 5000);
您可以使用类似的机制来维护一个数组,该数组将包含当前正在等待的所有函数。