ES6 async、await的基本使用方法示例


Posted in Javascript onJune 06, 2020

本文实例讲述了ES6 async、await的基本使用方法。分享给大家供大家参考,具体如下:

async是异步编程的最新标准,我们来看看async如何使用

1.async的简单使用

async function fn () {
 return 'abc'
}
console.log(fn());                    // Promise { 'abc' }
fn().then(res => {
 console.log(res);                    // "abc"
})

async作为关键字放在函数前面,让同步的函数成为异步函数,不关函数里返回什么,打印出还是promise,说明async还是基于promise的,async的异步方式还是比promise更加简单优雅的。

2.await的简单使用

// 这里模拟一个耗时操作
function asyncFunc() {
 return new Promise( resolve => {
  setTimeout(() => {
   resolve(100)
  }, 1000);
 })
}

async function fn () {
 let a = await asyncFunc();
 console.log(a);                    // 100
}

fn()

一秒后打印出了100,async和await搭配使用,await可以接收异步函数,整个过程看上去有点像同步代码,但其实是异步操作。

我们在fn()上加上一行代码

async function fn () {
 let a = await asyncFunc();
 console.log(a);                    // 100
 console.log(200);                    // 200
}

执行上面代码看到两次都是在暂停一秒打印出来的,这说明await的后面如果是promise(耗时操作),它会阻塞整个函数,下面的代码不会执行。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
用javascript控制iframe滚动的代码
Apr 10 Javascript
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
半角全角相互转换的js函数
Oct 16 Javascript
jquery移动节点实例
Jan 14 Javascript
Jquery实现遮罩层的方法
Jun 08 Javascript
纯javascript制作日历控件
Jul 17 Javascript
通过js修改input、select默认字体颜色
Apr 19 Javascript
AngularJS路由删除#符号解决的办法
Sep 28 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
Dec 16 Javascript
JS数组的常用10种方法详解
May 08 Javascript
vue动态设置页面title的方法实例
Aug 23 Javascript
vue中activated的用法
Jan 03 Vue.js
JS 数组和对象的深拷贝操作示例
Jun 06 #Javascript
ES6 Generator基本使用方法示例
Jun 06 #Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 #jQuery
ES6 Symbol在对象中的作用实例分析
Jun 06 #Javascript
微信小程序多列表渲染数据开关互不影响的实现
Jun 05 #Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
Jun 05 #Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
Jun 05 #Javascript
You might like
php生成二维码
2015/08/10 PHP
简述php环境搭建与配置
2016/12/05 PHP
自己的js工具 Cookie 封装
2009/08/21 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
Python语言异常处理测试过程解析
2020/01/08 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python list和str互转的实现示例
2020/11/16 Python
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
大学学习生活感言
2014/01/18 职场文书
三下乡活动方案
2014/01/31 职场文书
火车来了教学反思
2014/02/11 职场文书
行政助理工作职责范本
2014/03/04 职场文书
实习单位意见
2015/06/04 职场文书
暂住证证明
2015/06/19 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
html实现随机点名器的示例代码
2021/04/02 Javascript
Python获取百度热搜的完整代码
2021/04/07 Python
Django程序的优化技巧
2021/04/29 Python
python中if和elif的区别介绍
2021/11/07 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android