js异步函数调用(我现在很烦)

时间:2013-11-30 01:21:50

标签: javascript function asynchronous timeout call

我正在阅读MSDN上的教程。我遇到了一个关于pub / sub-approach的问题,我还无法理解。它是关于javascript中超时队列使用的声明。在尝试这个代码后,我完全糊涂了。在网页上:http://msdn.microsoft.com/en-us/library/hh404091.aspx

进一步向下是一个发布函数,在我发现这个声明之下:

“它使用setInterval函数,超时为0毫秒,以异步方式执行回调。这允许在前一个回调结束之前调用每个订阅者回调。这也意味着可以在其他回调之前调用回调回调已经完成。异步性的结果是你无法预测调用或完成回调的顺序。“

据我所知,函数回调是在执行的 它们被添加到队列的顺序。设置哪个计时器无关紧要。

任何人都可以验证这个吗?还是解释一下?

根据上述声明来自MSDN的代码:

that.publish = function (eventName, data) {
var context, intervalId, idx = 0;
if (queue[eventName]) {
    intervalId = setInterval(function () {
        if (queue[eventName][idx]) {
            context = queue[eventName][idx].context || this;
            queue[eventName][idx].callback.call(context, data);
            idx += 1;
        } else {
            clearInterval(intervalId);
        }
    }, 0);
}
};

0 个答案:

没有答案