如何使 NodeJS 中的 request 调用同步?

2024-03-25

我的 Nodejs 应用程序中有一个名为 get_source_at 的函数。它接受 uri 作为参数,其目的是从该 uri 返回源代码。我的问题是我不知道如何使函数同步调用请求,而不是给它那个回调函数。我want控制流停止加载 uri 所需的几秒钟。我怎样才能实现这个目标?

function get_source_at(uri){
    var source;
    request({ uri:uri}, function (error, response, body) {
        console.log(body);
    });
    return source;
}

另外,我已经阅读了有关“事件”以及节点如何“事件化”的内容,我在编写代码时应该尊重这一点。我很高兴这样做,但我必须有一种方法来确保在继续我的应用程序的控制流之前我拥有来自 uri 的源代码 - 所以如果这不是通过使函数同步,那么如何才能完成?


你可以与deasync https://github.com/abbr/deasync:

function get_source_at(uri){
    var source;
    request({ uri:uri}, function (error, response, body) {
        source = body;
        console.log(body);
    });
    while(source === undefined) {
      require('deasync').runLoopOnce();
    }
    return source;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 NodeJS 中的 request 调用同步? 的相关文章

  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何更改 Google Maps v3 API for Directions 中的开始和结束标记图像

    我使用 DirectionsRender 绘制了一条路线 但我不知道如何用我自己的标记替换通用的 Google 标记 我知道并在正常的谷歌地图情况下使用它 但发现很难用开始和结束的方向标记来做到这一点 如果这是一个愚蠢的问题 感谢您的任何建
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 引导程序提前输入未填充承诺的响应

    我的引导程序预输入如下
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • React-Redux:state.setIn() 和 state.set() 有什么区别?

    我见过使用setIn and set 在一些react redux代码中 state setIn state set 我在这里找到了一些文档https facebook github io immutable js https facebo
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • window.location 和 location.href 之间的区别

    我对之间的区别感到困惑window location and location href 两者似乎都以相同的方式行事 有什么不同 window location是一个对象 它保存有关当前文档位置的所有信息 主机 href 端口 协议等 lo
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • 在 Shopify 商店中嵌入 Vue 组件

    在产品页面中 我尝试显示自定义 Vue 组件 为简洁起见 该组件根据给定的产品 ID 显示 Firebase 数据库中的一些信息 我最初尝试将其制作为 Shopify 应用程序 以便我可以访问他们的 API 我实现了 OAuth 并且可以检
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening

随机推荐

  • 加载后隐藏微调器

    我想在加载页面后隐藏微调器 我尝试过这个 document ready function loader hide Hide it initially ajaxStart function this show ajaxStop functio
  • 如何将 IsActiveAsync 失败信息传递给用户和客户端?

    In my IdentityServer4我实施的项目IProfileService The IsActiveAsync使用隐式和混合流时 在人类用户通过登录网页成功进行身份验证后 会多次调用该方法 我注意到它被调用时context Cal
  • 结构归纳终止

    我无法让 Agda 的终止检查器接受使用结构归纳定义的函数 我认为 我创建了以下最简单的示例来展示此问题 以下定义size被拒绝 即使它总是在严格较小的组件上递归 module Tree where open import Data Nat
  • DB 或 XML 问题

    XML 似乎是另一种以更小规模存储信息的方式 而DB可以处理所有类型 我有兴趣了解每种方法的优点和缺点 在某个场景中 其中一个更好吗 我确信每个人都有最好的情况 先感谢您 嗯 XML 是任何人都可以读取的文件 因为它是文本 数据库必须通过
  • MFC 控件上的文本 - Unicode 字符(例如日语)被截断

    背景 我正在开发一个 C MFC 应用程序 我们已经将其转换为显示 unicode 字符以支持外语 在大多数情况下 这是成功的并且 unicode 字符显示正确 但我遇到了一个问题 某些控件上的某些文本被截断 Example 在这里 您可以
  • 使用linqpad作为主要查询工具

    我团队的一名成员最近转而使用 LinqPad 作为他的主要查询工具 有时仍然会使用 SQL Studio 其简单目的是迫使自己使用 LINQ 变得更自然 我认为这是一个非常好的主意 并正在考虑要求我的团队的其他成员进行此转换 有人对采取这种
  • 以编程方式唤醒 OSX 上的显示

    我已经设法让显示器立即进入睡眠状态 pmset displaysleepnow 在终端中 但是为了唤醒显示屏 我只找到了 pmset schedule wake 12 24 2009 00 00 00 如果我尝试将任何事情安排得早于从现在起
  • 在我的 c++ 项目中,在 Windows 上使用 libcurl 和 Visual Studio 不起作用,因为字符串已损坏

    正如标题中所解释的 我尝试使用 libcurl C API 提交简单的 http 查询 我使用 Windows 作为操作系统 C 作为语言 Visual Studio 2008 作为 IDE 我的代码非常简单 我初始化卷曲 CURLcode
  • Linq To SQL 指定的强制转换对于 Union 无效错误

    我有以下代码 它在 NET 4 0 中针对 SQL Server 2008 R2 服务器使用 Linq to SQL public void Patients var documents GetEMRDocumentsByPatientId
  • 乐观锁绝对安全吗?

    当使用乐观锁定策略时 可以解决如下并发问题 the first transaction started select a row the second transaction started update the row with vers
  • 如何订阅在不同 JVM 上运行的反应式流实现?

    假设我们有两个 Akka Stream 流 每个流都在自己的 JVM 上运行 A reactive streams publisher running on JVM 1 val stringPublisher Publisher Strin
  • 使用 xslt 样式表将 xhtml 空行转换为 XSL-FO 空行

    我正在使用 XSLT 样式表 由 Antennahouse 提供 将 XHTML 转换为 XSL FO 文件 我在 XHTML 文件中将一个空行定义为 2 个连续的 HTML BR 标记 现在 XSL FO 格式不提供对空行的本机支持 我想
  • 如何将多行字符串转换为数组,其中每个元素都是所述字符串的一行? [复制]

    这个问题在这里已经有答案了 可以说我有 string str Line 1 Line 2 Line 3 我怎样才能把它变成一个数组 其中 3 个元素是 第 1 行 第 2 行 和 第 3 行 使用此选项 RemoveEmptyEntries
  • D365 FO 到期合同简单查询

    我需要创建简单的查询 该查询将显示将在未来 3 个月内到期的所有合同 我知道如何使用 SQL 执行此操作 但在创建查询时如何在 Visual Studio 中执行此操作 我添加了数据源合同表 添加了范围 过期日期所在的列是 VALIDTO
  • Spring Transaction - 代理混淆

  • SwiftUI - 如何在 macOS 上隐藏窗口标题

    在具有新 SwiftUI 框架的 macOS 上 无需AppDelegate SceneDelegate 如何隐藏窗口标题 我发现 Apple 的这篇文章描述了如何为 Catalyst 应用程序执行此操作 但现在没有该委托 我该如何实现此目
  • 将 int 附加到 std::string

    我尝试了两种不同的方法来附加int to a std string 令我惊讶的是 我得到了不同的结果 include
  • Snakemake 输入函数异常。 AttributeError:“通配符”对象没有属性

    我有一个带有 ChIP seq 单端 fastq 文件名的列表对象allfiles path file1 fastq path file2 fastq path file3 fastq 我正在尝试设置该对象 allfiles 作为通配符 我
  • 如何以附加模式写入文本文件

    我的应用程序基于导航 UItextView 用于注释 UIViewController 我正在将文本数据写入文件 现在我需要在附加模式下编写 我正在尝试以下代码 但每次都使用相同的文本数据写入两次 并且不附加下一个文本数据到文件 void
  • 如何使 NodeJS 中的 request 调用同步?

    我的 Nodejs 应用程序中有一个名为 get source at 的函数 它接受 uri 作为参数 其目的是从该 uri 返回源代码 我的问题是我不知道如何使函数同步调用请求 而不是给它那个回调函数 我want控制流停止加载 uri 所