使用WinJS.Promise.Timeout(未定义)时会发生什么?

时间:2014-06-06 05:31:59

标签: javascript windows winjs

我正在尝试编写Windows应用程序。我很想知道当你传递WinJS.Promise.Timeout()未定义值而不是数值毫秒值时会发生什么。它是否等同于将函数传递给值0,或者行为是不可预测的?

2 个答案:

答案 0 :(得分:0)

根据code,当未指定此值时,将调用setImmidiate函数。这意味着当前任务完成时履行承诺。

当您传递0时,内部使用JavaScript setTimeout函数。某些系统上此功能限制为每秒250次呼叫。将'undefined'传递给WinJS.Promise.Timeout()时,它不使用setTimeOut调用。所以在某些情况下可能会快一点。

您可以在MSDN上找到有关setImmidate函数的更多信息。

答案 1 :(得分:0)

正如Sorskoot所解释的那样,代码清楚地表明,如果间隔为零或未定义,则调用setImmediate。文档(http://msdn.microsoft.com/en-us/library/windows/apps/xaml/br229729.aspx)明确说明了这一点:

timeout 
Type: Number

The timeout period in milliseconds. If this value is zero or not specified, msSetImmediate is called, otherwise setTimeout is called.

这只是说零或未定义的超时应该只产生UI线程然后完成。