无法使用 Require.js 调用函数

2024-03-28

我尝试使用 require.js 为我的 node.js 服务器编写一个模块,它只返回我想从 url 获取的对象。但不知何故,我无法返回用我的方法获得的值。 http.get... 在我返回值后执行,所以我只是得到“未定义”,但为什么呢?

请你帮助我好吗?抱歉,如果这是一个愚蠢的问题,但我对 javascript node.js 和 require.js 真的很陌生。

define(['http'], function(http){
    console.log('Hi ich bin pullArchiveVolume');

    var response = 1;
    console.log('Log 1: ' + response);

    http.get("http:...", function(res) {
        var body = '';

        res.on('data', function(chunk) {
            body += chunk;
        });

        res.on('end', function() {

            console.log("Log 2: " + response);
            response = 2;
            console.log("Log 3: " + response);

            response = JSON.parse(body);
            return response;
            // console.log("Log 2 :", response);
            // console.log("Got response: ", response);
        });
    }).on('error', function(e) {
      console.log("Got error: " + e.message);
    });

    console.log("Log 4: " + response);
    return response;

})

控制台输出:

Hi ich bin pullArchiveVolume
Log 1: 1
log 4: 1
log 2: 1
log 3: 2

Thanks!


你不能有一个函数让异步调用只返回一些东西(除非它是一个promise https://stackoverflow.com/questions/4296505/understanding-promises-in-node-js).

您需要让您的函数采用回调参数:

function foo(callback) {
  doSomethingAsync(function(data) {
    // fire callback, which is a function that takes an argument 'data'
    callback(data)
  });
}

然后你可以像这样使用它:

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

无法使用 Require.js 调用函数 的相关文章

随机推荐

  • 如何从独立存储中读取图像并将其显示在图像元素上?

    我需要从加载图像隔离存储 http msdn microsoft com en us library system io isolatedstorage 28v VS 95 29 aspx 并将其显示在图像 UIElement 上 我调查了
  • 在fabricJS中以相同的左原点缩放时保持相同的对象大小

    我见过这个帖子 https stackoverflow com questions 48578974 maintaining object size while zooming in fabric js并尝试仅使用 X 缩放来完成我自己的功
  • 如何使用 jquery 判断 gif 是否已完全动画化

    如果我有一个仅运行单个动画的 IE 动画 gif 它不循环 有没有办法使用 jquery 或任何与此相关的东西来告诉动画何时完成 我不想告诉文件是否已完全加载 但动画已经运行完毕 我认为没有办法从 JavaScript 中检测到它 我会选择
  • 如何解压 Pandas 中的一系列元组?

    有时 在使用 Pandas 时 我最终会得到一系列元组 列表 例如 当执行分组并传递具有多个返回值的函数时 这种情况很常见 import numpy as np from scipy import stats df pd DataFrame
  • ConstraintLayout 无法转换为 android.widget.TextView

    当我尝试启动活动时 不断收到运行时错误 发生错误的行 private OnItemClickListener mDeviceClickListener new OnItemClickListener public void onItemCl
  • 在 Java 应用程序中查找线程创建的来源

    我正在开发一个存在线程问题的 Java 应用程序 在使用带有 Netbeans 分析器的应用程序一段时间时 我可以看到创建了多个线程 他们中的大多数人都以某种方式完成 5 seconds 我只能找到应用程序中使用的 SwingWorkers
  • 如何在 Maven Shade 插件中设置清单类路径?

    我正在使用阴影插件 除了能够通过设置清单的类路径之外 一切正常
  • QMainWindow::splitDockWidget 的 QDockWidget 拉伸因子?

    我正在使用 QMainWindow 在 C 中手动布局 Qt 应用程序 我想要在屏幕底部有两个并排停靠的小部件 但我希望它们具有不成比例的宽度 目前 我只能让它们具有相同的宽度 有没有办法设置拉伸因子或其他机制来获得不均匀的码头分割 以下是
  • 显示所有数据库名称

    有没有办法使用主机地址和端口显示所有数据库名称 喜欢SELECT current database 显示当前连接的数据库 我需要显示所有数据库名称 提前致谢 有一个表显示所有数据库 SELECT FROM pg database
  • 使用express.js 处理猫鼬连接的正确方法是什么?

    我有一个非常简单的 server js 设置 我正在尝试运行 var express require express wines require routes testscripts var app express app get firs
  • 关于如何制作影响 Angular 中所有组件的主题机制的指南?

    问题 我需要有关如何在 Angular 中编写机制以在我的应用程序中全局设置组件的 外观和感觉 的指导 请注意 我正在努力学习 ngrx 平台 https github com ngrx platform我认为这将是一个有趣的设计约束 然而
  • 为什么 tabindex='-1' 阻止键盘

    经过几个小时的尝试找出键盘输入在引导模式中不起作用的原因后 我终于成功地找出了问题 这是我从未想到过的事情 但通过纯粹的消除过程发现了它 有了tabindex 1 存在于 div 对于引导程序中的模态 它完全停止键盘输入 我本以为数据属性d
  • 在 Laravel 5 中安装 Guzzle

    如何将 Guzzle 安装到 Laravel 5 中 我在我的项目中使用 laravel 但我需要像 guzzle 这样的库来让我在 laravel 中轻松使用curl 任何机构可以帮忙吗 打开终端 切换到你的 laravel 项目根目录并
  • 检索 DynamoDB 上以指定文本开头的列的所有项目

    我在 DynamoDB 中有一个表 Id int hash key Name string 还有很多列 但我省略了 通常 我只是根据项目的 ID 提取和更新项目 这个模式非常适合这种情况 然而 要求之一是有一个基于名称的自动完成下拉框 我希
  • ANTLR 4 - 树模式匹配

    我试图理解 ANTLR 4 中的解析树匹配 所以为此 我有以下java代码 package sampleCodes public class fruits public static void main String args int a
  • 如何检查正则表达式是否完全匹配字符串,即字符串不包含任何额外字符?

    我有两个问题 1 我有一个正则表达式 A Z a z 0 2 d 我正在使用Python的re finditer 匹配适当的字符串 我的问题是 我只想匹配不包含额外字符的字符串 否则我想引发异常 我想捕捉以下模式 大写字母 后跟 0 1 或
  • 如何从一个 Instagram 帐户获取关注者列表?

    我正在建立一个网站 我需要的只是一个 Instagram 帐户的关注者列表 我已经完成了使用 auth 2 0 验证我的网络应用程序的步骤 我刚刚意识到 通过此身份验证 我只能访问每个访问令牌所属帐户的关注者 有没有其他方法可以从我想要的帐
  • 如何在 ubuntu 12.04 中安装 python-matplotlib?

    当我尝试时 sudo apt get install python matplotlib 我收到以下错误 Reading package lists Done Building dependency tree Reading state i
  • `yield from foo()` 和 `for x in foo(): Yield x` 之间的区别

    在Python中 大多数yield from的例子都是这样解释的 yield from foo 类似于 for x in foo yield x 另一方面 它似乎并不完全相同 并且有一些魔法 我对使用一个执行我不理解的魔法的函数感到有点不安
  • 无法使用 Require.js 调用函数

    我尝试使用 require js 为我的 node js 服务器编写一个模块 它只返回我想从 url 获取的对象 但不知何故 我无法返回用我的方法获得的值 http get 在我返回值后执行 所以我只是得到 未定义 但为什么呢 请你帮助我好