千家信息网

async和await怎么使用

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"async和await怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Eric
千家信息网最后更新 2026年11月04日async和await怎么使用

本篇内容介绍了"async和await怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Eric:如何讲清楚Promise?

async和await要搭配Promise使用, 它进一步极大的改进了Promise的写法

来看一个简单的场景:

//假设有4个异步方法要按顺序调用

new Promise(function(resolve){

ajaxA("xxxx", ()=> { resolve(); })

}).then(function(){

return new Promise(function(resolve){

ajaxB("xxxx", ()=> { resolve(); })

})

}).then(function(){

return new Promise(function(resolve){

ajaxC("xxxx", ()=> { resolve(); })

})

}).then(function(){

ajaxD("xxxx");

});

语法上不够简洁, 我们可以稍微改造一下

//将请求改造成一个通用函数

function request(options) {

//.....

return new Promise(....); //使用Promise执行请求,并返回Promise对象

}

//于是我们就可以来发送请求了

request("http://xxxxxx")

.then((data)=>{

//处理data

})

然后我们再来重新改造开头的代码

request("ajaxA")

.then((data)=>{

//处理data

return request("ajaxB")

})

.then((data)=>{

//处理data

return request("ajaxC")

})

.then((data)=>{

//处理data

return request("ajaxD")

})

比起之前有了不小的进步, 但是看上去依然不够简洁

如果我能像使用同步代码那样, 使用Promise就好了

于是, async \ await出现了

async function load(){

await request("ajaxA");

await request("ajaxB");

await request("ajaxC");

await request("ajaxD");

}

await关键字使用的要求非常简单, 后面调用的函数要返回一个Promise对象

load()这个函数已经不再是普通函数, 它出现了await这样"阻塞式"的操作

因此async关键字在这是不能省略的

那么现在看, 这段代码变得异常清秀

代码的编写顺序

代码的阅读顺序

代码的执行顺序

全部都是按照同步的习惯来的

是不是很方便.

到这你已经学会了async和await基本使用方式

下面来简单解释一下它的工作流程

//wait这个单词是等待的意思

async function load(){

await request("ajaxA"); //那么这里就是在等待ajaxA请求的完成

await request("ajaxB");

await request("ajaxC");

await request("ajaxD");

}

如果后一个请求需要前一个请求的结果怎么办呢?

传统的写法是这样的

request("ajaxA")

.then((data1)=>{

return request("ajaxB", data1);

})

.then((data2)=>{

return request("ajaxC", data2)

})

.then((data3)=>{

return request("ajaxD", data3)

})

而使用async/await是这样的

async function load(){

let data1 = await request("ajaxA");

let data2 = await request("ajaxB", data1);

let data3 = await request("ajaxC", data2);

let data4 = await request("ajaxD", data3);

//await不仅等待Promise完成, 而且还拿到了resolve方法的参数

}

注意当一个函数被async修饰以后, 它的返回值会被自动处理成Promise对象

关于异常处理

async function load(){

//请求失败后的处理, 可以使用try-catch来进行

try{

let data1 = await request("ajaxA");

let data2 = await request("ajaxB", data1);

let data3 = await request("ajaxC", data2);

} catch(e){

//......

}

}

"

"async和await怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

处理 代码 函数 顺序 对象 改造 简洁 不够 关键 关键字 内容 写法 方法 更多 知识 同步 实用 普通 清秀 学有所成 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 上海喔噻互联网科技有限公司 广州淘业互联网络科技 科技创新与互联网经济 杭州互联网科技公司 亿策互联网科技 镁科技互联网资讯平台 顺网科技2021年互联网排名 互联网科技创新企业排名 互联网公司会议桌创意科技软装饰 汉立互联网科技有限公司联系电话 互联网科技博主是什么意思 苏州铭阳互联网科技有限公司 长沙茂晟互联网科技有限公司 合肥互联网科技公司公章图片 沐思想互联网科技有限公司 深圳互联网科技的发展 梅州GM互联网络科技有限公司 2021世界互联网领先科技成果发布 互联网高科技绘画 精品咖啡豆 互联网科技公司经营范围 科技创新与互联网经济 高科技与互联网 电子科技大学互联网 上海亿帐通互联网科技 湖南洣水互联网科技有限公司扣款 全球顶尖互联网科技公司 兰石爱特工业互联网科技分公司 张家口科技产业互联网平台
0