如何从nodejs回调函数返回值?

2023-12-29

mturk_ops.block = function(callback){


mongodb.collection(collectionName, function(err, collection){

    collection.distinct('workerId',function(err,result){
        var result1 = [];
        console.log(result.length);
        for(var i=0; i< result.length;i++){

            console.log(result[i]);

          result1[result[i]] =  collection.count({
                'workerId':result[i],
                "judgementStat" : "majority"
            },function(err, count){
                //  console.log(count);
              //  globals.push(count);
                return count ;
                // console.log( worker + ' majority : ' + count);

            });

        }

    console.log(result1);
    });


});

}

在这里,我尝试打印“result1”,但它总是打印具有未定义值的数组。 “result1”是一个在回调函数范围之外分配的数组。


您无法从异步回调中返回值。回调通常在声明它的函数返回后一段时间执行(该函数将在调用异步方法后继续执行)。回调函数无处返回to。这是一个简单的例子:

function doSomething() {
    var x = 10;
    doSomethingAsynchronous(function () {
        // This is a callback function
        return 30; // Where would I return to?
    });
    x += 10; // Execution continues here as soon as previous line has executed
    return x; // doSomething function returns, callback may not have run yet
}

如果您需要依赖异步方法的结果,则需要将需要它的代码移至回调中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从nodejs回调函数返回值? 的相关文章

随机推荐

  • GitKraken 不允许我在 GitLab 上打开我的私有存储库

    所以 除了GitKraken 不允许我从 GitHub 上的私人存储库进行克隆 https stackoverflow com questions 41945280 gitkraken wont let me clone from a pr
  • 如何在osx中​​创建虚拟键盘?

    我想在 osx 中创建一个虚拟键盘 是否可以 我的意思是我可以制作一个程序来提供与真实键盘相同的信号吗 这种键盘的示例是屏幕键盘或键盘查看器 顺便说一句 它是否有必要的界面 我应该从多低开始 我应该制作一个设备驱动程序吗 虚拟 无线 键盘
  • 为什么 printf() 是一个不纯函数?

    据我所知 不纯函数是那些在使用相同参数调用时并不总是返回相同值的函数 我一定遗漏了一些东西 或者可能是错误的 如果我是的话 请纠正我 那么为什么是printf 被认为是不纯函数吗 纯 函数lacks 副作用 too 换句话说 无论你调用多少
  • 如何使用 pytest 对测试失败采取行动?

    我正在使用 pytest 我想收集 保存一些数据 以便对测试失败进行事后分析 我可以写一个teardown method 但我没有看到在这种情况下获得测试状态的方法 是否可以对任何测试采取行动 或assertion 失败 实施一个pytes
  • 从超过 max_retries 失败的任务中恢复

    我尝试异步使用 Web 服务 因为它最多需要 45 秒才能返回 不幸的是 这个 Web 服务也有些不可靠 并且可能会引发错误 我已经设置了django celery并让我的任务执行 这工作正常 直到任务失败为止max retries 这是我
  • NHibernate 抛出会话已关闭

    我在风中拍打 所以我想我应该在这里问 请让我知道这是否是显而易见的并且之前已得到回答 我正在构建一个 MVC 3 网站 当我与一个用户一起运行它时 我可以单击页面来运行它 该网站运行良好 然而 如果我疯狂地点击刷新 最终我会点击 会话已关闭
  • 如何在 Amazon ElasticBeanstalk 上安装的 Java 应用程序上将 http 请求重定向到 https

    我正在使用 Amazon ElasticBeanstalk 进行 Java EE Web 应用程序部署 我希望我的应用程序只能是 https 因此我在 ElasticLoadbalancer 上配置了 SSL 证书 我也将 web xml
  • 在 GitHub 组织中的所有 Git 存储库中搜索模式

    我有一个 GitHub 组织 该组织中有大约 250 个属于不同团队的存储库 我拥有组织帐户的管理员访问权限 有没有一种方法可以在所有这些存储库中搜索模式 最好是通过 GitHub 的 Web 界面 我们计划更新一些 jar文件位置 但我们
  • boost序列化1.5.5遇到Nan和Inf时崩溃

    看来boost序列化无法从基于文本的档案中恢复Nan和inf的值 除非您处理该程序 否则该程序将终止archive exception在这种情况下 有什么解决办法吗 图书馆的作者有话要说 http lists boost org boost
  • 网站未使用 blogdown 和 Hugo 进行更新

    我知道这个问题可能会因为导致错误的代码重现性不足而被否决 但我对这个错误感到非常惊讶 我什至不知道从哪里开始足够清楚地解释它 因此我提前道歉 此问题已在两台不同的计算机上发生过两次 我使用 Hugo academic 主题在 R Studi
  • 没有 freetds.conf 的 FreeTds

    我可以在没有 freetds conf 的情况下运行 FreeTds API 吗 C C 据我记得 可以在没有旧的 interfaces 文件的情况下使用Sybase ctlib None
  • 如何在 Go 中的 POST 请求中发送 JSON 字符串

    我尝试使用 Apiary 并制作了一个通用模板来将 JSON 发送到模拟服务器并具有以下代码 package main import encoding json fmt github com jmcvetta napping log net
  • 调整 ScrollViewer.CompulatedVerticalScrollBarVisibility 更改上的列表视图列大小

    我正在使用一个星形转换器具有相对大小的列表视图列 https stackoverflow com questions 6338930 how to resize wpf listview proportionally 11421253 11
  • 如何获取程序集的根命名空间?

    给定一个实例System Reflection Assembly 当我想通过其清单资源流从当前程序集加载资源时 我多次遇到这种困境 事实上 如果使用 Visual Studio 将文件作为资源嵌入到程序集中 则其清单资源名称将从 Visua
  • 如何使用包含完全相同类型但用其他类型参数化的参数的参数列表来重载方法

    我有一个方法 public List
  • 如何在 Javascript 中添加或减少工作日?

    我需要一个 Date prototype addBusDays 函数 这将采用一个整数作为添加到日期的工作日数 但是 有两个考虑因素 1 周末 2 假期 我想这是一个要比较的预设数组 如果开始日期和结束日期包含 3 个假期 那么您将结束日期
  • 从两列计算并创建百分比列

    我有一个 df Apple farm 并且需要根据两列中找到的值计算百分比 Good apples and Total apples 然后将结果值添加到 Apple farm 中名为 Perc Good 的新列中 我努力了 Apple fa
  • 由 CAS 引起的 APEX 应用程序生成器的编码问题

    我有一段时间对 APEX 应用程序生成器 sql 研讨会有疑问 存在编码问题 APEX 必须提供东欧字符 最后我找到了问题的根源 我已经通过 web xml 将 CAS sso 实现到 APEX 中 APEX 位于 Tomcat ORDS
  • 如何查看 NEAR 协议创世时创建的原始账户结构?

    显然账户已经发生了很大的变化 但是有没有一种简单的方法可以在网络启动时查看原始账户和余额的映射 基本上 创世哈希在哪里 这是 mainnet genesis json 文件 https github com near nearcore bl
  • 如何从nodejs回调函数返回值?

    mturk ops block function callback mongodb collection collectionName function err collection collection distinct workerId