首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在node.js回调函数中循环

在node.js回调函数中循环
EN

Stack Overflow用户
提问于 2013-05-05 02:59:39
回答 2查看 214关注 0票数 1

我可以在回调函数中运行循环(while,for,dowhile等)吗?下面是一个示例代码:

代码语言:javascript
代码运行次数:0
运行
复制
var execute = function (data,callback) 
{
    //do something with data
    callback();
}

execute (data,function(error,returnDataArray)
{
    var boo = true;
    while(boo)
    {
        //do something with returnDataArray
        if (returnDataArray.length == 10) 
            boo=false;
    }
});

现在,我的疑问是,主线程会一直等到上面的while循环执行完吗?

EN

回答 2

Stack Overflow用户

发布于 2013-05-05 03:11:46

你的主线程会被回调函数中的循环阻塞。这是因为回调函数只是延迟到完成,然后,它们被推入JavaScript事件循环中,并在线程空闲时执行。简而言之,node (和JavaScript)中的所有事情都发生在一个线程中(正常执行、回调、超时等)。

使用JavaScript将函数执行到另一个线程的唯一方法是手动将其推入另一个线程。在浏览器中是一个web worker,在节点上是一个集群。

票数 2
EN

Stack Overflow用户

发布于 2013-05-05 03:10:27

你可以有这样的东西

代码语言:javascript
代码运行次数:0
运行
复制
var execute = function (data,function(error,returnDataArray)
{
  //do something with data
  var boo = true;
  while(boo)
  {
    //do something with returnDataArray
    if (returnDataArray.length == 10) 
        boo=false;
  }
});

或者,可以使用异步模块,使用function async.parallel

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16377874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档