当前位置:网站首页>nodeJs--async/await
nodeJs--async/await
2022-08-04 00:06:00 【H5_ljy】
一、什么是async/await
async/await是es7推出的一套关于异步的终极解决方案;主要作用就是转异步为同步。
二、async/await语法格式
//可写一个函数返回的是异步的promise对象,也可以定义一个异步函数;
function fn(){
return new Promise((resolve,reject)=>{
resolve(666)
})
}
let p1=new Promise((n1,n2)=>{ //也可以直接写一个promise对象
n1(999)
})
// 在需要使用上面异步函数的函数前面,加上async声明,声明这是一个异步函数
async function fn2(){
// 在异步函数前面加上await,函数执行就会等待用await声明的异步函数执行完毕之后,在往下执行
let a1=await fn()
let p=await p1
console.log(a1,p)
}
fn2()

注意:async/await不能捕获错误,可以使用try/catch来进行错误的捕获
function fn() {
return new Promise((resolve, reject) => {
resolve(666)
})
}
let p1 = new Promise((n1, n2) => {
n1(999)
})
async function fn2() {
try {
let a1 = await fn()
let p = await p1
console.log(a1, p)
} catch (err) {
console.log(err)
}
}
fn2()
小结:
1.async函数在声明形式上和普通函数没有区别,函数声明式,函数表达式,对象方法,class方法和箭头函数等都可以声明async函数。
2.任何一个await语句后面的 Promise 对象变为reject状态,那么整个async函数都会中断执行。
3.async函数返回的 Promise 对象,必须等到内部所有await命令后面的 Promise 对象执行完,才会发生状态改变,除非遇到return语句或者抛出错误。也就是说,只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数。
边栏推荐
猜你喜欢

【杂项】如何将指定字体装入电脑然后能在Office软件里使用该字体?

jav一键生成数据库文档

YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)

A simple understanding of TCP, learn how to shake hands, wave hands and various states

伦敦银最新均线分析系统怎么操作?

FinClip, help smart TV more imagination

咱们500万条数据测试一下,如何合理使用索引加速?

BioVendor人Clara细胞蛋白(CC16)Elisa试剂盒检测步骤

建木DevOps流程的快速运用

Why Flutter Flutter of tutorials is the best choice for business?
随机推荐
2015年开源大事件汇总
[Miscellaneous] How to install the specified font into the computer and then use the font in the Office software?
小身材有大作用——光模块基础知识(一)
corn表达式 具体详解与案例
求解同余方程 数论 扩展欧几里得
智能座舱的「交互设计」大战
Flutter教程之为什么 Flutter 是创业的最佳选择?
直播系统聊天技术(八):vivo直播系统中IM消息模块的架构实践
Sqlnet. Ora file with the connection of authentication test
Free自由协议系统开发
20年将投资美国约2000亿美元,三星电子财大气粗的样子真好看
状态机实验
通过whl安装第三方包
sqlnet.ora文件与连接认证方式的小测试
查看CUDA、pytorch等的版本号
【性能优化】MySQL性能优化之存储引擎调优
简单了解下 TCP,学习握手和挥手以及各种状态到底是怎么样的
V8中的快慢数组(附源码、图文更易理解)
MPLS综合实验
pcl点云数据 转化为 Eigen::Map