async/await
时间:2022-07-24
本文章向大家介绍async/await,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
async/await
async
是ES7
的与异步操作有关的关键字,其返回一个Promise
对象,await
操作符用于等待一个Promise
对象,它只能在异步函数async function
内部使用。
async
语法
async function name([param[, param[, ... param]]]) { statements }
-
name
: 函数名称。 -
param
: 要传递给函数的参数的名称。 -
statements
: 函数体语句。
async
函数返回一个Promise
对象,可以使用then
方法添加回调函数,返回的Promise
对象会运行执行resolve
异步函数的返回结果,如果抛出异常则运行拒绝reject
。
实例
async function asyncPromise(v){
return v;
}
asyncPromise(1).then((v) => {
console.log(v);
}).catch((e) => {
console.log(e);
})
await
async
一般是配合await
指令使用的,该指令会暂停异步函数的执行,并等待Promise
执行,然后继续执行异步函数,并返回结果。若Promise
处理异常rejected
,await
表达式会把Promise
的异常原因抛出。另外,如果await
操作符后的表达式的值不是一个Promise
,则返回该值本身。
实例
function promise(){
return new Promise(function(resolve,reject){
var rand = Math.random() * 2;
setTimeout(function(){
resolve(`solve ${rand}`);
},1000)
})
}
(async function asyncPromise(){
var result = await promise();
console.log(result);
})();
// 捕捉异常
function promise(){
return new Promise(function(resolve,reject){
throw new Error(`reject`);
})
}
(async function asyncPromise(){
var result = await promise();
console.log(result);
})().catch((e) => {
console.log(e);
});
// 非promise对象直接返回该值本身
function notPromise(){
return 1;
}
(async function asyncPromise(){
var result = await notPromise();
console.log(result);
})();
- 使用动态语言来制作silverlight
- 《资讯》霍金:人工智能的威胁就像核武器,世界将发生10大变化!
- [原创]WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- 厉害了,连美图CEO都开始热捧区块链了!
- Silverlight制作逐帧动画
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(58)-DAL层重构
- 糟糕了!这次新版微信,要干死所有小游戏了!
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(59)-BLL层重构
- 除了奇奇怪怪的机器人们,2017年人工智能还干了哪些“蠢事”?
- 区块链搬砖的坑及有效鉴别方法
- 英伟达回应禁令:研究人员放心用不更新驱动就没影响
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-主从表结构导出
- WCF中的Binding模型之六(完结篇):从绑定元素认识系统预定义绑定
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(57)-插件---ueditor使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- rsyslog的安装、使用、详解
- Nmap NSE 库分析 >>> stdnse
- 安装系统小记
- Nmap NSE 库分析 >>> nmap
- 深入讲解Logback
- python pty & magic | 加固shell
- 通达OA伪造SESSION | Nmap脚本
- Postman使用完全指南
- meterpreter shell | 加固shell
- R语言绘图:复杂散点图绘制
- windows下部署sentinel模式的Redis主从集群
- tmux | 加固shell
- Windows下离线部署Redis主从集群
- SSH 后门 | Nmap 脚本
- 【Tomcat源码解析】第二章:不用死记硬背记住Tomcat整体架构