【发布时间】:2018-05-03 14:50:45
【问题描述】:
我对 setTimeout 有点困惑。我想确认以下代码的输出是否总是:
inside abc
inside sample
代码:
function abc() {
xyz();
// interactions and modifications in DOM
$("#id1").append("something");
$("#id2").val("set something");
$("#id3").after("create some dynamic element");
// 10 to 20 interaction more...
console.log('inside abc');
}
function xyz() {
setTimeout(function() {
sample();
},0);
}
function sample() {
console.log('inside sample')
}
如果有人可以用调用堆栈解释整个流程,那就太好了。
【问题讨论】:
-
如果人们(和我一样)在回调运行时看到 setTimeout 和“堆栈上”的其他帧而感到困惑,请注意某些浏览器(例如 Chrome)会尝试通过显示 @ 来帮助调试987654321@。视觉上不是很清楚,但“setTimeout (async)”表示它实际上不在堆栈上。
标签: javascript