存储过程循环遍历一个月的每一天的函数_JavaScript 循环:如何处理 async/await

同步循环

很久以前我写的循环是这样的:

4fa82f3c3f18c6fc79e76c73a21237e6.png

后来 JavaScript 提供了很多新的特性,现在我们会更倾向于用下面这种写法:

9981f8b7b9f147e418478950e14d810e.png

在开发过程可能会有这么一种需求,我们需要在循环中异步处理 item,那么可以怎么做呢?


异步循环

如何在循环中使用 await?我们试着写一个异步函数,然后 await 每一次循环任务。

a3bab9259d2c01f45c8709a6aa2dcc69.png

这个代码会抛出一个错误,因为我们不能在同步方法中使用 await, processArray 确实是异步函数,但是 array.forEach 里的匿名函数是同步的。


不要等待结果

要处理这个问题,我们可以把这个匿名函数定义为异步的:

898fb11a9725125a4e090dfceb3a2936.png

但是这样的话 forEach 方法就相当于异步的了,不会等待遍历完所有的 item,例如下面这段代码:

027d29f0b6b93636f2c36abc15904ecd.png

将会输出:

Done!123

如果你不需要等待这个循环完成,这样就已经可以了。但是大部分情况我们还是需要等待这个循环完成才进行之后的操作。


串行遍历

要等待所有的结果返回,我们还是要回到老式的 for 循环写法:

22211f0640e0a15db08c890beb0b8e56.png

最后的结果符合我们的预期:

123Done!

上面这段的遍历代码是串行执行的,我们也可以把它换成并行的。


并行遍历

我们可以稍微更改上面的代码来编程并行的:

1fa0a33133c43af32e60e106171edcdb.png

(注意:对于特别大的数组不建议使用这种写法,太多的并行任务会加重 CPU 和内存的负荷)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Angular程序架构

component,组件是Angular应用的基本构建块,你可以把一个组件理解为一段带有业务逻辑和数据的html。组件下面可以有子组件,子组件下有孙子组件,像树一样。指令:允许你向html元素添加自定义行为。模块Ngmodule&#xff1…

sqllite能连接mysql_SQLLite 可以通过SQL语言来访问的文件型SQL数据库

Web Storage分为两类:- sessionStorage:数据保存在session 对象中(临时)- localStorage:数据保存在本地硬件设备中(永久)sessionStorage:保存数据的两种方法:sessionStorage.setItem(key,val);sessionStorage.key val;读取数据的…

迭代器模式(Iterator)

迭代器模式 一. 迭代器模式 1.1 定义 提供一种方法顺序访问一个集合对象中的各种元素,而又不暴露该对象的内部表示.1.2 角色 抽象迭代器接口(Iterator).具体迭代器(ConcreteIterator).抽象聚合接口(Aggrega…

Angular启动过程介绍

1、启动时加载了哪个页面?2、启动时加载了哪些脚本?3、这些脚本做了什么事?打开Angular的命令行文件.angular-cli.json。apps节点下面。首先加载 index.html 页面。此时浏览器显示index.html的内容。再加载main.ts脚本"apps": [{..…

python解压打开文件过多_在python中使用zipfile压缩文件时层级很多,有很多层目录...

如下图本来只压缩一个文件结果这个文件所在的路径全都被压缩进去啦下面是解决方法yadirD:/databak/zipfilepathD:/zipfile.zipfilelists os.listdir(yadi)if filelists None or len(filelists) print (">>>>>>待压缩的文件目录:" ya…

易语言python1.1模块_易语言之编写模块与引入模块

本人并不精通易语言,只是对其进行一定了解后做一个简单的总结。直接新建一个易语言模块,然后添加子程序即可。子程序当然可以随意命名,实际上,易语言的子程序就和c语言的函数,java中的方法一样(实际上,java…

spring boot开发笔记——mybatis

概述 mybatis框架的优点,就不用多说了,今天这边干货主要讲mybatis的逆向工程,以及springboot的集成技巧,和分页的使用 因为在日常的开发中,当碰到特殊需求之类会手动写一下sql语句,大部分的时候完全可以用m…

Angular项目目录介绍

通过 ng new 项目名生成的项目 一级目录 Angular cli 工具生成的目录文件名不要随意修改,要不然会影响工具的使用。e2e:端到端的测试目录,用来做自动测试的。node_modules:Angular第三方包。src:应用源代码目录&#…

jvm内存模型_四种视角看JVM内存模型

1.JVM运行视角程序计数器Java虚拟机栈本地方法栈Java堆方法区1 .程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的行号指示器。这个计数器记录的是正在执行的虚拟机字节码指令的地址。此内存区域是唯一一个在JAVA虚拟机规范中没有规定任何Ou…

linux mysql失败_linux下登陆mysql失败

标签:一.提示由于没有密码,拒绝登陆ERROR 1045 (28000): Access denied for user ‘root‘‘localhost‘ (using password: NO)1.关闭mysql# service mysqld stop2.屏蔽权限# mysqld_safe --skip-grant-table屏幕出现: Starting demo from ..…

Tomcat服务脚本

为什么80%的码农都做不了架构师?>>> #!/bin/bash ### BEGIN INIT INFO # Provides: tomcat # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # S…

Angular开发准备

cmd,进入项目文件下1、安装jquerynpm install jquery --save。--save 安装的同时,将信息写入package.json中2、安装bootstrapnpm installbootstrap--save。3、在.angular-cli.json中添加 jquery和bootstrap的引用在styles节点和scripts节点下加入。&quo…

python桌面开发吐血_想用java写个桌面小demo,就布局都差点写吐血了,学艺不精...

demo简略需求项目背景很多文件重复存放,除了管理混乱,还会对患有强迫症用户的身心造成10000点的伤害...其实就是360云盘当时上传了有上传,造成很多重复的图片视频,前阵子360个人云盘“倒闭”,电脑日夜兼程,…

oracle 取当前日期时间的前一天前一小时前一分钟前一秒

原文链接:http://wentao365.iteye.com/blog/779492 点击阅读原文 --------------------------------------------------------------------------- SELECT 当前时间 TITLE, TO_CHAR(SYSDATE, yyyy-mm-dd hh24:mi:ss) TIME FROM DUAL --当前时间 UNION ALL S…

mysql8事务级别_Mysql几种事务隔离级别

前言:之前对mysql的基础知识通过了几篇博客进行了一个详解,包括从数据库系统的原理以及最基本的操作使用,此篇博客将主要对mysql的事务级别进行实战分析1.什么是事务?事务是应用程序中一系列严密的操作,所有操作必须成…

控制台应用和空项目有什么区别_互联网小程序的应用以及APP的应用有什么区别及发展...

随时移动互联网进入的千家万户,互联网的手机应用程序也渐渐的在市场上流行起来了。今天主要跟大家谈一下互联网小程序的应用以及APP的应用有什么区别以及未来的发展趋。未来会流行什么手机应用或者APP应用,我带大家都为了解一下。下边先来了解一下小程序…

day19_java基础加强_动态代理+注解+类加载器

一、动态代理 1.1、代理模式 什么是代理模式及其作用? Proxy Pattern(即:代理模式),23种常用的面向对象软件的设计模式之一。        代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。 …

mysql压力写入测试_mysql压力测试工具

相关推荐:测试工具测试工具 测试管理工具 Quality Center 基于WEB的测试管理工具 Test Director 功能测试工具 QuickTest Professional 性能测试工具 LoadRunner 哪位仁兄有相关…

python中队列的应用用场景_消息队列应用场景

原文http://blog.csdn.net/konglongaa/article/details/52208273一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致…

oracle获取一段时间内所有的小时、天、月

原文链接:http://blog.csdn.net/ld422586546/article/details/9626921/ 点击阅读原文 ---------------------------------------------------------------------- 获取一段时间内所有的小时 SELECT to_date(2013-07-01 12, yyyy-mm-dd hh24) (ROWNUM - 1) / 24 s…