Node js Express 应用程序中使用 setTimeout 获取请求的并发性

2024-01-25

控制台日志图片 https://i.stack.imgur.com/TKhfa.png

const express = require('express');
const app = express();
const port = 4444;

app.get('/', async (req, res) => {
  console.log('got request');

  await new Promise(resolve => setTimeout(resolve, 10000));

  console.log('done');
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

如果我同时点击 get 请求 http://localhost:4444 三次,那么它会返回如下日志

got request
done
got request
done
got request
done

由于节点事件循环和回调队列位于进程线程外部,它不应该以下面的方式返回输出吗? (也许我错了,但需要对 Nodes 内部结构有一些了解)和 Node 中的外部 api 请查找附图JavaScript 运行时环境 https://i.stack.imgur.com/ZGd1d.jpg

got request
got request
got request
done
done
done

谢谢https://stackoverflow.com/users/5330340/phani-kumar https://stackoverflow.com/users/5330340/phani-kumar

我明白了它被阻止的原因。我正在用 chrome 测试这个。我正在从 Chrome 浏览器发出 get 请求,当我在 Firefox 中尝试相同的操作时,它按预期工作。

原因是因为这个

Chrome 会锁定缓存并等待查看一次请求的结果,然后再再次请求同一资源。

对同一资源发出多个请求时 Chrome 会停止? https://stackoverflow.com/questions/27513994/chrome-stalls-when-making-multiple-requests-to-same-resource

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

Node js Express 应用程序中使用 setTimeout 获取请求的并发性 的相关文章

  • 动态更改温斯顿的日志级别

    我尝试在运行时实现日志级别更改 我一直在关注https github com yannvr Winston dynamic loglevel blob master test https github com yannvr Winston
  • dyld:惰性符号绑定失败

    当我尝试运行时遇到一个奇怪的错误gatsby develop在新创建的 gatsby 项目中 这不应该与 gatsby js 静态站点生成器 有任何关系 因为我在不同的场合也遇到了相同的错误 当我跑步时gatsby develop在我的一个
  • 如何将对象数组传递给jade模板?

    我想将一组对象从 mongodb 传递到客户端 这是物体 var objeto img name name of the file image image jpg url title title of the image caption d
  • 未捕获的 ReferenceError:未定义角度 - Mean.IO

    我已遵循安装步骤 http mean io docsmean io 但是当我浏览 localhost 3000 时 我得到一个空白页面 当我打开控制台时 我得到一个指向相同错误的文件列表 未捕获的引用错误 角度未定义 我的问题是类似的to
  • Node.js 上的 starttls > 0.4.0

    我遇到了这个线程Node js HTTPS 安全错误 https stackoverflow com questions 5136353 node js https secure error其中提到 tls 模块是现在在节点上执行 TLS
  • 如何使用 Chai Http 发布对象数组

    我正在尝试发布一个对象数组ChaiHttp https github com chaijs chai http像这样 agent post route to api send locations lat lat1 lon lon1 lat
  • 如何导入和导出 javascript ES6 类

    我是 javascript 和 nodejs 的新手 我正在使用这个项目来发展我的技能并学习新技术 目前我的项目使用多个相互依赖的类 类文件位于不同的目录中 我当前正在尝试使用 export 和 require 语句来允许在其他文件中引用类
  • 构建:找不到“节点”的类型定义文件

    VS 2015 社区版 在家 npm 3 10 Angular 2 我试图在 ASP Net MVC 5 应用程序中获取 Angular2 设置 我开始使用的模板使用旧版本的 Angular 因此我更新了包引用 当我构建时 列表中的第一个错
  • 一次更新猫鼬中的多个文档

    我有一个用户文档数组 每个用户都有关注者属性 它是一个数字 我只想将此属性增加 1 然后立即更新数据库中的所有这些用户文档 更多细节 在请求中 我有一组用户 id 我使用这些 id 进行查询以获取一组用户文档 const users awa
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • Java 中的无锁并发链表

    我想使用像中描述的链接列表this http reference kfupm edu sa content l o lock free linked lists using compare and 3368 pdf纸 但是 我在网上没有找到
  • Express中间件修改请求

    我目前有一个正在运行的服务器 前端使用nodejs mongo express 和 W2UI W2ui 请求来自包含所有参数的记录数组 记录 名称 foo 我想编写一个中间件 在请求到达路由之前对其进行编辑和更改 您可以创建自己的中间件来处
  • 在 Node.js 中解析 Json(带有数组和对象)并将数据导出到 Excel 文件中

    我是 Node js 新手 我的要求是 我需要解析 JSON 并将数据导出到 Excel 文件中 其中包含 JSON 中的所有字段 我的 JSON 如下 id 1255 title The Brain and Nervous System
  • 如何使信号量超时

    Go 中的信号量是通过通道来实现的 一个例子是这样的 https sites google com site gopatterns concurrency semaphores https sites google com site gop
  • Hashmap并发问题

    我有一个哈希图 出于速度原因 我希望不需要锁定 假设我不介意过时的数据 同时更新它和访问它会导致任何问题吗 我的访问是获取 而不是迭代 删除是更新的一部分 是的 这会导致重大问题 一个例子是向散列映射添加值时可能发生的情况 这可能会导致表重
  • 纤维/未来实际上有什么作用?

    下面这行代码的作用是什么 Npm require fibers future 我在网上查找示例 发现了一些这样的示例 Future Npm require fibers future var accessToken new Future 什
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • Node.js 升级在 Windows 中仍然显示旧版本

    我已使用 msi 安装程序下载并安装了新版本的 nodejs 4 1 2 之后我跑了node v 但它仍然显示旧版本 0 12 2 我尝试重新启动Windows 甚至卸载nodejs并重新安装它 但仍然显示相同的内容 为什么会发生这种情况
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • 使用socket.io进行用户身份验证

    我已经红色了这个教程 http howtonode org socket io auth http howtonode org socket io auth 它展示了如何使用express和socket io对用户进行身份验证 但是有没有一

随机推荐

  • 生成 10000 位随机序列

    有没有比在循环中附加 0 和 1 更有效的方法来在 Python 中生成 10 kBit 10 000 位 随机二进制序列 如果您想要一个随机二进制序列 那么生成适当范围内的随机整数可能是最快的 import random s random
  • 实时卡中的 OpenGL?

    我一直在研究 glass GDK 和 glass 原生 Java 开发 我有一个在 Glass 上运行良好的开放 GL 应用程序 使用标准 Android 约定 我希望将其移植到 GDK 以利用语音触发器等功能 虽然我当然可以轻松地将它用作
  • 从哪里开始学习 Linux DMA/设备驱动/内存分配

    我正在移植 调试设备驱动程序 由另一个内核模块使用 并面临死胡同 因为 dma sync single for device 因内核错误而失败 我不知道这个函数应该做什么 而且谷歌搜索也没有什么帮助 所以我可能需要了解更多关于这个东西的知识
  • 正则表达式删除记事本++中标签之间的文本

    我有这样的代码
  • 我的 iframe 无法与 UIWebView 配合使用

    我已经测试过我的iframe到处都运行得很好 但是iOS in Objective C 它不起作用UIWebView 这是我的代码 有人可以帮助我吗 谢谢 self webView scrollView scrollEnabled NO N
  • 目录中所有文件内容的总大小[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我使用ls or du 我得到每个文件占用的磁盘空间量 我需要打开每个文件并计算字节数时得到的文件和子目录中所有数据的总和 如果我能在不
  • 如何扩展 LoginUrlAuthenticationEntryPoint 或如何实现 AuthenticationEntryPoint

    我正在尝试这样做 让 spring security 在登录页面的查询字符串中添加 return to url https stackoverflow com q 4696905 即 让spring告诉登录页面我来自哪里 我有一些 SSO
  • 在 Yii 的控制器中创建构造方法

    我刚刚开始学习Yii 我在那里创建了一个PostController控制器 在这个控制器中 我有一个使用要求Sessions 所以我创建了一个构造函数方法 其代码如下 public session public function const
  • open() 不适用于隐藏文件 python

    我想使用 python 在隐藏文件夹中创建并写入 txt 文件 我正在使用这段代码 file name hi txt temp path myfolder docs file name file open temp path w file
  • 在实践中,std::sort 和 std::stable_sort 之间的性能差距有多大?

    两者都应该以 O n log n 的速度运行 但一般来说排序比 stable sort 更快 实践中的性能差距有多大 你对此有一些经验吗 我想要对大量大小约为 20 字节的结构进行排序 对于我来说 结果的稳定性很好 但这不是必须的 目前底层
  • C++ 联合中“受保护”的意义是什么

    受保护的成员或函数有什么用途吗 您不能从联合继承 因此没有子项可以访问它 它是否提供了功能用途 或者只是因为移除它很麻烦而存在 protected in a union变得完全等价于private 但是这个津贴没有坏处 并且避免了额外的特殊
  • 循环播放特定 Gmail 标签的邮件(而非线程)

    我添加了具体的messages 而且不是全部thread 到标签to process通过以下步骤 Turn Conversation ModeGmail 设置中关闭 贴上标签to process到特定消息 当显示消息时 我可以确认只有特定的
  • 如何在Python中使用循环创建元组[重复]

    这个问题在这里已经有答案了 我想创建这个元组 a 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 我尝试过这个 a 1 1 1 for i in range 2 10 a a i
  • 访问 coo_matrix 中的元素

    这是一个非常简单的问题 对于像 coo matrix 这样的 SciPy 稀疏矩阵 如何访问单个元素 类比 Eigen 线性代数库 可以使用 coeffRef 访问元素 i j 如下所示 myMatrix coeffRef i j 来自 c
  • Web 应用程序中的 Spring 线程

    我正在为MMO浏览器游戏编写服务器 我需要创建几个线程 他们将一直运行 并有一些睡眠时间 使用这样的弹簧线是个好主意吗 Component Scope prototype public class PrintTask2 implements
  • Instagram 基本显示 API 分页

    无论如何 是否可以对使用 Instagram Basic Display API 获得的媒体结果使用分页 我已阅读以下文档 但他们没有任何使用分页的示例 https developers facebook com docs instagra
  • 将带有描述性注释的框添加到 ggplot2 中的 y 轴

    我正在尝试向我的 Y 轴添加另一个标签或描述 我附上了一张图片作为我想要完成的任务的参考 我找不到任何描述如何向轴添加其他元素的内容 它是 Y 轴旁边的 好 和 坏 框 我试图将其合并到我的 ggplot 中 谢谢 在此输入图像描述 htt
  • 使用 React Native 和 Hooks 时,Jest 测试期间状态不会更新

    我正在尝试测试组件中的功能 基本思想是设置某种状态 当按下按钮时 将使用设置的状态调用函数 该代码可以工作 但是当我尝试测试它时 我没有得到预期的结果 就好像在测试期间状态从未被设置 我正在使用 Jest 和 Enzyme 测试的 Reac
  • SQL Server 中 INNER 连接和笛卡尔连接的区别[重复]

    这个问题在这里已经有答案了 可能的重复 内连接和全连接的区别 https stackoverflow com questions 3022713 difference between inner join full join 这两者之间有什
  • Node js Express 应用程序中使用 setTimeout 获取请求的并发性

    控制台日志图片 https i stack imgur com TKhfa png const express require express const app express const port 4444 app get async