千家信息网

async和await有什么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关async和await有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。来看一个简单的场景://假设有4个异步方法要按顺序调用new
千家信息网最后更新 2026年11月03日async和await有什么用

这篇文章将为大家详细讲解有关async和await有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

来看一个简单的场景:

//假设有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安全错误 数据库的锁怎样保障安全 湖南永感互联网科技有限公司 科技互联网政务服务 深圳科技互联网 小马过河互联网科技 狮子座互联网科技培训 居家互联网科技有限公司 科技赋能互联网健康 江苏南京365互联网科技 互联网科技博主是什么意思 广州恒生互联网科技有限 佳云科技和互联网广告 语蝶互联网科技有限公司 阿大互联网科技有限公司 锡山区互联网智能科技产品供应 云南省自由互联网科技有限公司 互联网科技快讯热点 广州有谷有贝互联网科技有限公司 抖集互联网科技技术咨询 玉溪新华互联网科技怎么选 互联网科技企业文化 丰台科技园 互联网 成都互联网科技公司100强 互联网时代科技改变生活 互联网科技大奖都有哪些公司 天津腾达互联网科技有限公司 国大互联网教育科技有限公司薪资 互联网企业科技类企业如何做账 唯美互联网科技 福仕德教育科技互联网 优雇互联网科技有限公司
0