为什么使用map、forEach和for循环插入数据库时​​数组的顺序不同

2024-03-12

我有一个数组 [1,2,3,4,5] ,当插入数据库时​​,我除了收到数据库中的 [1,2,3,4,5] 这样的结果之外。但只有循环 for 才能给我预期的结果,map() 和 forEach() 总是给我无序数组,如 [1,3,4,5,2] 或 [4,3,2,5,1] 等。 这是我的代码:

arrayChild.map(async item => {
    await this.repository.save(item)
});

arrayChild.forEach(async item => {
    await this.repository.save(item)
});

for (let i = 0; i < arrayChild.length; i++) {
    await this.repository.save(arrayChild[i])
}

请告诉我原因。感谢您的关注


because map and forEach方法不处理您传入的异步函数async await way.

当您检查polyfill https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#polyfill这两种方法,你会发现这样的一行callback.call(T, kValue, k, O);。所以,基本上,它只是执行callback。如果callback是一个异步方法,它不会等待其执行完成。相反,它继续执行其他代码。

因此,当您将数据数组保存到数据库时,里面的回调map & forEach只是发出几个查询,数据库的最终执行顺序可能是不确定的。

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

为什么使用map、forEach和for循环插入数据库时​​数组的顺序不同 的相关文章

  • 如何检测被覆盖的 CSS 属性?

    I can get all css properties for an element with document stylesheets but some of those are not active because those pro
  • javascript:全局变量泄漏

    每当我向 Firefox 提交插件时 我都会收到一封电子邮件 告诉我我的一些变量正在泄漏到全局范围内 一旦他们告诉我我解决了问题 但在那之前有什么方法 程序 来检查变量是否泄漏到全局范围内 Thanks Both JSLint http w
  • Bootstrap 标签栏平滑移动导航按钮

    我有一个用于切换块的普通引导选项卡面板 在导航中切换块时 活动选项卡会突出显示 但现在 当我单击活动选项卡的背景时 它会立即发生变化 是否可以使切换选项卡时背景不会立即改变 而是根据需要哪个选项卡而平滑地左右移动 这可以用以下方法完成吗cs
  • HTML 和 标签有什么区别?

    HEAD 标签和 BODY 标签有什么区别 大多数 HTML 书籍仅 简短 提及 and 标签 但它们消失得很快 它们会影响浏览器呈现网页的方式吗 另外 它们会影响 javascript 的运行顺序吗 我的意思是 如果我里面有一个javas
  • 如何在 google.maps.event.addListener 中使用它

    以下示例有效 但是当我尝试传递参数并使用this在该功能不起作用 Working google maps event addListener markers i click showInfoWindow function showInfoW
  • 调用类实例方法 onclick javascript

    我有一个 javascript 文件 其中包含包含方法函数的类 我想知道如何从 onClick 事件调用类实例方法 function MyClass this instanceData Display Me this DisplayData
  • 需要参数的addEventListener(和removeEventListener)函数

    我需要向 8 个对象 手掌 添加一些侦听器 这些对象是相同的 但行为必须根据它们的位置而改变 我有以下 丑陋的 代码 root palmsStatus B B B B B B B B if root palmsStatus 0 N root
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • 如何设置必须输入特定数字的字段?

    我想知道如何创建一个需要输入特定数字或文本的字段 例如 激活码 以及在输入的确认答案的情况下移动到 网页 并且在未确认的情况下移动到 另一页面 的按钮 使用必需的属性
  • 如何调试超时等待异步 Angular 任务?无法在角度页面上找到元素

    编辑 请注意 在 ernst zwingli 的帮助下 我找到了问题的根源 因此 如果您遇到相同的错误 他指出的修复之一可能会帮助您 我的问题是量角器本身的一个已知问题 如果您认为这可能是您 我已经扩展了我的步骤 以在我最初的问题之后查明问
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • jQuery 中什么函数相当于 .SelectMany()?

    让我解释一下 我们知道 jQuery 中的映射函数充当 Select 如 LINQ 中 tr map function return this children first returns 20 tds 现在的问题是我们如何在 jQuery
  • 在 Android Chrome 中隐藏 HTML5 音频/视频通知

    我的网络应用程序上有一个 HTML5 音频元素 在某些时候 我使用以下代码以编程方式停止播放 audioElement pause audioElement currentTime 0 播放音频时 我的 Android 设备 使用 Goog
  • for循环中需要声明变量吗?

    有什么区别 for var i 0 i lt 5 i for i 0 i lt 5 i 是否有必要包含 var 关键字 我知道 var 关键字会影响变量范围 但我无法理解是否有必要在 for 循环中包含该关键字 在第二个示例中 您的变量是全
  • 在javascript中创建图像的缩略图方块(不丢失纵横比)

    我正在制作一个客户端拖放文件上传脚本作为书签 在上传之前 我使用 File API 将图像读取为 base64 格式并将其显示为缩略图 This is how my thumbnails look like I want them to l
  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对
  • 将 JSON 属性绑定到表单

    我有一个 JSON 对象和一个
  • 区分 NaN 输入和输入类型为“number”的空输入

    我想使用 type number 的表单输入 并且只允许输入数字
  • $ 在 JQuery 中意味着什么

    在下面的 var obj one 1 two 2 three 3 four 4 five 5 each obj function i val console log val 这里是什么意思 是对象吗 是一个别名jQuery对象 函数 它充当
  • 如何通过点击复制 folium 地图上的标记位置?

    I am able to print the location of a given marker on the map using folium plugins MousePosition class GeoMap def update

随机推荐

  • 对象初始值设定项和构造函数有什么区别?

    两者之间有什么区别 何时使用 对象初始值设定项 而不是 构造函数 反之亦然 我正在使用 C 如果这很重要的话 另外 对象初始值设定项方法是否特定于 C 或 NET 对象初始值设定项是 C 3 中添加的内容 目的是在使用对象时简化对象的构造
  • 强制抽象类属性由具体类实现

    考虑这个抽象类和实现它的类 from abc import ABC class FooBase ABC foo str bar str baz int def init self self bar bar self baz baz clas
  • 无论如何,在一个 neo4j 实例上有多个数据库?

    从关系数据库的思维方式来看 每个 Neo4j 实例只有一个图形数据库似乎很奇怪 我们的想法是从根开始创建多个子图吗 Thanks 根 节点的概念正在消失 这存在很多问题 其中大部分与节点密度有关 我相信您问题的核心在于数据库设计 以及拥有多
  • Eclipse 类似于:“无法确定 [项目名称]/[文件路径]/[文件名称] 的 URI”

    主要问题 我在 Eclipse Luna 上遇到以下错误 有一天 您上班并尝试启动 Eclipse 并提高工作效率 但是工作台一打开 您就会看到所有文件选项卡都出现错误 如下所示 无法确定 my project path to file f
  • 与 object.prop 相比,使用 `in` 有什么好处?

    我们都看到该功能检测到执行以下操作 var touch function return ontouchstart in window 但我想知道使用它是否还有其他好处in类似这样的操作符 这可以节省一些字节 var touch functi
  • 获取 JavaScript 对象的第一个键名称[重复]

    这个问题在这里已经有答案了 假设我们有以下 JavaScript 对象 ahash one 1 2 3 two 4 5 6 是否有一个函数可以返回给定对象的第一个键名称 从上面的例子我想得到one作为该功能的结果 在 JavaScript
  • netty ChannelInboundHandlerAdapter 将帧裁剪为 ~1500 字节

    我已经实现了一个服务器应用程序 它使用 netty 框架通过 ChannelInblundHandlerAdapter 读取传入的字节 如标题所示 我的问题是 我不定期地从客户端获取内容 我认为这些内容在 1 500 字节后被剪切 例如 在
  • OSGi 声明性服务的绑定顺序

    假设我使用 OSGi 声明性服务 并且我有一个服务 该服务具有多个带有策略 动态的引用 A 强制一元 B 强制一元 C 强制倍数 D 可选一元 E 可选的多个 当我的服务开始时 所有参考资料都可用 有没有办法控制bind的调用顺序 我想让
  • 即使在 webpack 配置中拆分后,供应商代码仍然位于 bundle.js 文件中

    使用下面的 webpack 配置 我仍然在 bundle js 文件中获取供应商代码 即使在代码分割之后 bundle js 的大小也保持不变 我希望供应商代码不应出现在bundle js 中 遵循某些链接 但没有帮助 https gith
  • 使用 array_map() 访问第一级键,而不调用 `array_keys()`

    有没有办法做这样的事情 test array array first key gt first value second key gt second value var dump array map function a b return
  • 如何在 D3 中重用两个(或更多)链式转换序列

    我必须应用两个非常长的链式转换序列 它们主要在转换顺序上有所不同 并且我正在寻找一种紧凑的编码方式 作为一个玩具示例 考虑序列顺序应该是的情况a b c d e f g h and e f g h a b c d 我已经尝试使用下面的代码
  • AudioQueue内存播放示例

    有人知道使用 AudioQueue 从内存源播放的任何示例吗 我可以从文件中找到播放的所有示例 使用 AudioFileReadPackets 但在我的特定情况下 我自己实时生成数据 因此理想情况下 我想自己将数据排入队列 而不是使用回调将
  • 在开发期间清除 Rails 会话

    如何清除 Rails 会话以便我可以重新开始 我知道我可以用以下方法使每个会话变量无效session my var nil 但是是否有 rake 任务或知道如何将会话数据恢复为其最基本形式的任务 我在用着Spree http demo sp
  • phpMyadmin 数据库导入错误 #1046 - 未选择数据库

    我有一个从另一台计算机上的 phpmyadmin 导出的 sql 文件 我尝试在此计算机上导入该文件 但收到此错误 Error SQL查询 Database phplogin Table structure for table people
  • 如何让div居中对齐?

    我想要一个垂直和水平居中的 div 即位于页面的中心 我尝试了position absolute并将div的右上角左下角设置为0 但问题是 当我放大页面时 它与其他标题和其他 div 重叠 请帮我 如何在放大页面时将 div 定位在页面中心
  • C# 控制台应用程序 - 如何始终从控制台读取输入?

    我目前正在编写一个使用大量多线程的控制台应用程序 我希望能够始终允许用户在控制台中输入内容 但是 线程会定期输出到控制台 但我希望用户始终能够在控制台中输入内容 并由我来处理输入 我将如何实现这一目标 我在网上没有找到任何相关内容 先谢谢了
  • 如何使用 Java 将 JPEG 图像读入 BufferedImage 对象

    这不是一个重复的问题 因为我已经在Google和StackOverflow中寻找解决方案很长时间了 但仍然找不到解决方案 我有这两张图片 这是来自同一网站的两张图像 具有相同的前缀和相同的格式 唯一的区别是尺寸 第一个较大 而第二个较小 我
  • 导航栏链接到子文件夹

    每当我有一个指向子文件夹中页面的链接时 它就会冻结子文件夹中的导航栏 以便浏览器链接保留在子文件夹中并且无法找到 在 Visual Studio Express 中使用母版页 母版页如下所示
  • EAGL:它到底代表什么?

    我忘了 但是 EAGL 代表什么具体的东西吗 或者它只是核心动画 OpenGL 命名约定的一部分 CAEAGLLayer 等 AGL 是苹果 OS X 的 OpenGL 扩展的名称 我相信 EAGL 是 Embedded AGL 或 ES
  • 为什么使用map、forEach和for循环插入数据库时​​数组的顺序不同

    我有一个数组 1 2 3 4 5 当插入数据库时 我除了收到数据库中的 1 2 3 4 5 这样的结果之外 但只有循环 for 才能给我预期的结果 map 和 forEach 总是给我无序数组 如 1 3 4 5 2 或 4 3 2 5 1