为什么angularjs插件使用$ timeout没有明显的原因

时间:2016-04-25 15:14:56

标签: javascript angularjs

我只是个初学者,所以不要评判我。

我见过很多angularjs插件(指令/服务),它们使用$ timeout函数而没有任何时间(或时间= 1ms)。

例如:

SELECT SUBSTRING(FileName,1, CHARINDEX('\', 0))

为什么他们这样做或者这样做有什么好处?

3 个答案:

答案 0 :(得分:1)

它突破了主显示线程的功能(或者,尽可能接近javascript中的“线程”)。

如果它封装的功能长时间运行,则意味着浏览器不会无响应。

答案 1 :(得分:0)

在执行回调之前等待当前摘要周期结束。如果需要存在依赖于摘要周期的其他函数的某些副作用,以使特定代码段正常工作,这可能很有用。

例如,假设$timeout()上方的代码设置了一个由控制器$watch()编辑的变量,并且控制器执行一些其他逻辑并设置一些变量,以及$timeout()内的代码{1}}需要更新这些变量才能使其正常工作。 Good Angular开发人员试图避免这种情况,但无论如何它都出现了,$timeout()是处理它的最好方法。

答案 2 :(得分:0)

也许你应该首先看看这个答案。 它非常清楚地解释了$ timeout的功能。

$timeout in angularjs

此外,它会在try / catch块中自动包装您的回调,并让您处理$ exceptionHandler服务中的错误。

它返回一个promise,因此与传统的回调方法相比,它更倾向于与其他基于promise的代码更好地互操作。当您的回调返回时,返回的值用于解析承诺。