async/await 继发执行与并发执行,看如何控制

两个异步函数 foo bar

function foo() {return new Promise((resolve, reject) => {setTimeout(() => {console.log('foo:' + new Date().toLocaleString())resolve('foo')}, 2000)})
}function bar() {return new Promise((resolve, reject) => {setTimeout(() => {console.log('bar:' + new Date().toLocaleString())resolve('bar')}, 2000)})
}

继发执行

//继发执行
async function main() {console.log('beginTime:' + new Date().toLocaleString())var foostr = await foo();console.log(new Date().toLocaleString())console.log(foostr);var barstr = await bar();console.log(new Date().toLocaleString())console.log(barstr);console.log('endTime:' + new Date().toLocaleString())
}//继发执行
async function main2() {let docs = [foo, bar];console.log('beginTime:' + new Date().toLocaleString())for (let doc of docs) {var str = await doc();console.log(new Date().toLocaleString())console.log(str);}console.log('endTime:' + new Date().toLocaleString())
}

并发执行

//并发执行
async function async_main() {console.log('beginTime:' + new Date().toLocaleString())let [get_foo, get_bar] = await Promise.all([foo(), bar()]);console.log(new Date().toLocaleString());console.log(get_foo);console.log(get_bar);console.log('endTime:' + new Date().toLocaleString())
}//并发执行
async function async_main4() {let docs = [foo(), bar()];console.log('beginTime:' + new Date().toLocaleString())for (let doc of docs) {var str = await doc;console.log(new Date().toLocaleString())console.log(str);}console.log('endTime:' + new Date().toLocaleString())}//并发执行
async function async_main2() {console.log('beginTime:' + new Date().toLocaleString())let fooPromise = foo();let barPromise = bar();let get_foo = await fooPromise;console.log(new Date().toLocaleString());console.log(get_foo);let get_bar = await barPromise;console.log(new Date().toLocaleString());console.log(get_bar);console.log('endTime:' + new Date().toLocaleString())
}

node.js async/await 继发执行与并发执行相关推荐

  1. node mysql await_javascript – node.js async / await与MySQL一起使...

    我需要将所有结果同步并附加到带有async / await关键字的字符串,例如c# 我是node.js的新手,我无法将这种新语法适应我的代码. var string1 = ''; var string ...

  2. Node.js Async Await in ES7

    原文 http://stackabuse.com/node-js-async-await-in-es7/ One of the most exciting features coming to Jav ...

  3. node.js async await 配合Promise对象使用

    function getData(){return new Promise(function(resolve, reject){setTimeout(function(){var uname = 'z ...

  4. js async await 终极异步解决方案

    js async await 终极异步解决方案 参考文章: (1)js async await 终极异步解决方案 (2)https://www.cnblogs.com/CandyManPing/p/9 ...

  5. js async await Uncaught SyntaxError

    js async await Uncaught SyntaxError Uncaught SyntaxError 修改后 Uncaught SyntaxError Uncaught SyntaxErr ...

  6. Node.js async/awit

    1:NodeJS 是什么 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. No ...

  7. node.js async循环数组的方法

    Collections 集合处理 async.forEachOf  |  eachOf(object, iterator, callback) 实现功能:遍历object对象执行iterator,报错 ...

  8. python主线程执行_python 并发执行之多线程

    正常情况下,我们在启动一个程序的时候.这个程序会先启动一个进程,启动之后这个进程会拉起来一个线程.这个线程再去处理事务.也就是说真正干活的是线程,进程这玩意只负责向系统要内存,要资源但是进程自己是不干 ...

  9. python await 超时_python里并发执行协程时部分阻塞超时怎么办

    展开全部 碰到这种需求时不要惊慌,可以使62616964757a686964616fe4b893e5b19e31333363393638用wait()里的timeout参数来设置等待时间,也就是从这个 ...

最新文章

  1. 比特币现金反弹,区块链是极好机遇
  2. 算法_bitmap算法
  3. 深入浅出之正则表达式(一)
  4. SQL的各种连接(cross join、inner join、full join)的用法理解
  5. IntelliJ Idea注释模板--类注释、方法注释
  6. 基于Element-plus封装配置化表单组件(组件的v-model实现)
  7. Opencv3.0.0安装包
  8. 各大搜索引擎提交地址
  9. dubbo负载均衡代码分析1(leastactive策略)
  10. 怎么写linux的sh文件,linux – 什么是.sh文件?
  11. MYSQL SHOW VARIABLES简介
  12. 电脑桌面数字时钟c语言,DesktopDigitalClock(桌面数字时钟)
  13. java二级线程_计算机二级辅导:Java线程新特征(原子量)
  14. 高通 锁定DDR频率
  15. android switch的使用方法,Android开关控件,ToggleButton和Switch使用大全
  16. 兄弟连猿代码less css 视频教程学习平台
  17. java程序的结构与类型实验报告_20172301 《Java软件结构与数据结构》实验三报告...
  18. 菜鸟日记(yzy) 微信公众号网页的开发基础(微信接口调用)
  19. MYSQL语句按中文拼音排序
  20. C# 设置Excel打印选项及打印excel文档

热门文章

  1. python中opencv怎么检测双眼_OpenCVPython中的瞳孔检测
  2. Simsimi 小黄鸡机器人最新无限制接口api simsimi机器人接口api 微信公众号
  3. 打破双亲委派机制有什么用_你确定你真的理解双亲委派了吗?!
  4. maven聚合项目,新建molde,在maven projects中显示灰色
  5. 【经验】 - \r,\n,\r\n的区别
  6. 如何在简历中描述自己的项目
  7. 玩转鼠标右键,只需要这两个~
  8. Stable Difussion 拒绝崩脸崩手崩身 ADetailer 插件
  9. 银行的不良贷款率下降
  10. oracle ora 16179,ora 06026 06023