当前位置:网站首页>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方法指定的回调函数。
边栏推荐
猜你喜欢
随机推荐
Graph-node:创建一个新的subgraph
2023年航空航天、机械与机电工程国际会议(CAMME 2023)
Minimized installation of debian11
rsync basic usage
高斯推断推导
搭建好pytorch环境后,pip和conda指令不能用
数据库扩容也可以如此丝滑,MySQL千亿级数据生产环境扩容实战
Nanoprobes Alexa Fluor 488 FluoroNanogold 偶联物
FastDFS 一文读懂
DataBinding下的RecycleView适配器Adapter基类
Prometheus监控Harbor(二进制版)
Node.js的基本使用(三)数据库与身份认证
Sqlnet. Ora file with the connection of authentication test
Using matlab to solve the linear optimization problem based on matlab dynamic model of learning notes _11 】 【
Spinnaker调用Jenkins API 返回403错误
Unity 截取3D图像 与 画中画PIP的实现
Nanoprobes丨Nanogold-抗体和链霉亲和素偶联物
LeetCode 0155. 最小栈
机器学习——库
分子个数 数论(欧拉函数 前缀和