我尝试使用javascript中的回调执行settimeout()函数。每次我使用它时,都会显示一个匿名随机数(仅在控制台中)。我想知道那是什么。
setTimeout(function() {
console.log("one");
setTimeout(function() {
console.log("two");
setTimeout(function() {
console.log("three");
}, 1000);
}, 1000);
}, 1000);
执行上面的代码可以在控制台中找到一个数字:
答案 0 :(得分:2)
控制台将显示上面评估的最终表达式(同步)的结果。因为setTimeout
返回一个与超时的唯一ID相对应的数字,所以这就是您所看到的数字-最外面的setTimeout
的ID。
(此ID很有用,因为它意味着您可以将其传递给clearTimeout
或clearInterval
来清除现有的超时或间隔。)
您将看到与此代码相同的输出,其中将ID显式分配给变量,然后在最后一行再次求值:
outerTimeoutId = setTimeout(function() {
console.log("one");
setTimeout(function() {
console.log("two");
setTimeout(function() {
console.log("three");
}, 1000);
}, 1000);
}, 1000);
outerTimeoutId; // <-- results in some number being displayed in the console