async/await 顺序执行和并行
async function asyncAwaitFn(num) {
return await new Promise((resolve, reject) => {
setTimeout(() => {
console.log(num)
resolve(num+1)
}, 1000);
})
}
const serialFn = async () => { //串行执行
console.time('serialFn')
let rest1=await asyncAwaitFn(1)
let rest2=await asyncAwaitFn(rest1) //将res1的结果作为参数
console.timeEnd('serialFn')
}
const paralle=async()=>{//并行执行
console.time('paralle')
await Promise.all([asyncAwaitFn(1), asyncAwaitFn(2)])
console.timeEnd('paralle')
}
serialFn();
paralle();
//1
//1
//2
//paralle: 1001.81005859375ms
//2
//serialFn: 2003.39208984375ms
串行的函数要等上个异步执行完在执行,这样可以用到上一步返回的结果,如果不需要上一个函数的结果,单纯的串行可是可以的,不需要写返回句柄
并行的函数不需要等上个函数执行完毕,同时进行
转载于:https://www.cnblogs.com/pingpingdejia/p/10944157.html
async/await 顺序执行和并行相关推荐
- 理解 async/await 的执行
这是一篇简单的短文章,方便理解. 开局先丢官宣:sec-async-function-definitions 这个链接是对 await 的解释,解释了它的执行. await 的执行意味着(官宣巴拉巴拉 ...
- node.js async/await 继发执行与并发执行
async/await 继发执行与并发执行,看如何控制 两个异步函数 foo bar function foo() {return new Promise((resolve, reject) => ...
- setTimeout、setInterval、promise、async/await的顺序详解(多种情况,非常详细~)
本文很长,列举的情况很多. 在阅读本文之前,如果您有充足的时间,请新建一个项目与本文一同实践. 每段代码都有对应的解释,但是自己动手尝试印象才会更深哦~ setInterval:表示多久执行一次,需要 ...
- await js 报错_js async/await
一.async 带async关键字的函数,是声明异步函数,返回值是promise对象,如果async关键字函数返回的不是promise,会自动用Promise.resolve()包装. asyncfu ...
- ajax如何循环lis,关于js中循环遍历中顺序执行多个嵌套ajax的问题
就是业务上需要完成一个功能,这个功能需要依次调用四个接口,后面接口的参数都依赖于前一个接口的返回值. 类似这样: var objArr = "从其他逻辑获得"; for(var n ...
- 动态加载js如何保证顺序执行?
我们知道,可以使用创建script标签的方法来动态加载js文件. 但随之带来问题,如果创建多个script标签来加载多个js文件,这些文件是异步并行加载的,默认添加了async属性,最后执行顺序不能保 ...
- 【JS】1015- 异步编程的终极解决方案 async/await
早期的回调函数 回调函数我们经常有写到,比如: ajax(url, (res) => {console.log(res); }) 复制代码 但是这种回调函数有一个大缺陷,就是会写出 回调地狱(C ...
- 8张图让你一步步看清 async/await 和 promise 的执行顺序
2019独角兽企业重金招聘Python工程师标准>>> **摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3 ...
- vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用
vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用 异步解决方案:async/await 多个await,同步拿到数据再处理 多个接口处理拿到数 ...
最新文章
- 灵魂拷问:你看过Xgboost原文吗?
- 3D视觉工坊中秋国庆贺礼!
- centos 安装git_开源物联网MQTT 5.0服务器——EMQ安装及运行教程
- 谷歌创始人“退位”,印度CEO独挑大梁
- 什么是SCADA Viewer
- SUDO的环境变量为何不同?
- esp32树莓派_用 ESP32 制造炫彩 LED 球
- ifix如何设画面大小_天涯明月刀手游研发揭秘:如何做出有“豪华感”的国风MMO大世界?...
- idea创建springcloud主工程和springboot子项目
- LintCode 1915. 举重(01背包)
- java反射jdk1.8,Java基础----jdk1.8 反射实验
- MySQL笔记-MDL锁(metadata lock)
- hadoopsdk使用_使用 IDEA 搭建 Hadoop3.1.1 项目
- [转载]MySQL各类SQL语句的加锁机制
- CherryPy 入门
- 安腾机器IA64 全自动网络安装Linux - elilo+kickstart
- 《OpenGL编程指南》第8版 第9版 VS2015 VS2017配置方法
- Chango的数学Shader世界(十六)RayTrace三维分形(一)—— ue4中最简单的RayMarch
- html中动态添加元素属性值,JavaScript实现动态添加、移除元素或属性的方法分析...
- DSN格式转SCH格式