繁体   English   中英

setTimeout执行的函数叫什么?

[英]What is a function executed by setTimeout called?

我目前使用以下函数在事件循环中将函数调用排队:

Function.prototype.async = function () {
    setTimeout.bind(null, this, 0).apply(null, arguments);
};

这使我可以编写如下代码:

alert.async("This will be displayed later.");
alert("This will be displayed first.");

现在,我计划将此功能包含在我正在编写的库中。 但是,名称async似乎是对该函数的不正确描述。 从技术上讲,该函数不是异步执行的。

所以我的问题是,如果setTimeout执行的函数不是异步的,那是什么? 您如何形容?

我相信defer将是一个更合适的名称,但我不太确定。

ECMAscript代码在称为UI线程中执行,该UI线程在任何浏览器实现中运行。 基本上,所有UI更新Javascript代码块都在该线程内共享(这也是为什么长时间运行的Javascript代码会挂起浏览器UI的原因)。

然而,什么样setTimeout做,只是要排队的功能 插入到该UI线程 这就意味着,不能保证您的代码实际上会在xxx毫秒之内执行,只是无法将其压入队列。 如果其他进程仍在运行,或者浏览器在线程中忙碌,则只有执行其他任何处理后,它才会被执行。

我怎么称呼它?

“推迟执行ECMAscript代码”

它在第一个调用结束(背对背)后执行,

并使用set-timeout绑定,以在第一个事件结束后开始。

因此它是同步的(加入/流入),

我希望我在这里有道理:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM