【发布时间】:2013-11-06 17:54:36
【问题描述】:
在网上搜索异步函数,我发现很多文章使用 setTimeout 来完成这项工作:
window.setTimeout(function() {
console.log("second");
}, 0);
console.log("first");
输出:
first
second
这可行,但是否是最佳做法?
【问题讨论】:
-
这当然是最简单的技术。但是,如果您实际上是在尝试在单独的线程中运行异步任务,web workers 会更有效。 (HTML 5)
-
@minitech:这正是我的观点(
setTimeout在单线程中运行,而网络工作者则没有)。它们有不同的用途,当网络工作者确实是他们正在寻找的东西时,人们经常使用setTimeout。在不了解 OP 试图完成的任务的更多细节的情况下,我不确定哪个最适合这种情况。 -
练习?不要管那个。你的目标是什么?告诉我们,然后我们可以帮助您最好地实现它。
-
@FlightOdyssey:哦。我不太明白那里“更有效”的含义。 :P
-
异步不会有更好的性能。你只是在拖延即将发生的事情。如果你的代码需要在写之前等待,那么当然,保留它。
标签: javascript jquery