将异步函数及其回调函数分配给单个变量

时间:2013-09-26 08:04:45

标签: javascript

在提出下面的功能之后,我的下一个任务就是让它每3秒循环一次。

  Chat.fetch(function(x) // x is an array delivered by .fetch
    {
      for (var i = 0; i<x.length; i++)
        {
          Chat.display(x[i]); // and .display only takes strings as an argument
        }
    });

现在我的第一个初学者的想法是以某种方式将所有上述内容变成一个变量。

var myvariable = Chat.fetch(etc...

然后我会做类似

的事情
setInterval(myvariable, 3000);

显然这没用。那个停止这种方法的功能是什么呢?

1 个答案:

答案 0 :(得分:1)

我会提出一个不同的解决方案。

// define the callback function
var displayMessages = function(x) // x is an array delivered by .fetch
    {
      for (var i = 0; i<x.length; i++)
        {
          Chat.display(x[i]); // and .display only takes strings as an argument
        }
      // Ivoke Chat.fetch with this callback again after 3 seconds
      setTimeout( function(){ Chat.fetch( displayMessages ); }, 3000 );
    } 
// start polling
Chat.fetch( displayMessages );

现在,每次调用回调时,它都会在先前的消息呈现后3秒后再次触发Chat.fetch