JS中如何使用async与await
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,小编给大家分享一下JS中如何使用async与await,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、asyncasyn
千家信息网最后更新 2025年02月01日JS中如何使用async与await一、async
二、await:
三、综合应用
小编给大家分享一下JS中如何使用async与await,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
一、async
async
创建一个异步函数来定义一个代码块,在其中运行异步代码;
怎样变成异步函数呢?以 async
这个关键字开始,它可以被放置在一个函数前面
async function f() { return 1;} f().then(alert); // 1 //上下结果一样 async function f() { return Promise.resolve(1);} f().then(alert); // 1 //也可以用箭头函数let hello = async () => { return "1" };hello().then((value) => console.log(value))//返回值也可以简化成这样hello().then(console.log)
异步函数的特征之一:保证函数的返回值为 promise
。
将 async
关键字加到函数申明中,可以告诉它们返回的是 promise
,而不是直接返回值。此外,它避免了同步函数为支持使用 await
带来的任何潜在开销。
二、await:
await
只在异步函数里面才起作用。它可以放在任何异步的,关键字 await
让 JavaScript
引擎等待直到 promise
完成并返回结果。在等待promise
的同时,其他正在等待执行的代码就有机会执行了。
您可以在调用任何返回Promise
的函数时使用 await
,包括Web API
函数。
async function f() { let promise = new Promise((resolve, reject) => { setTimeout(() => resolve("咚!"), 1000) }); let result = await promise; // 等待执行,直到 promise resolve 执行完 alert(result); // "咚!"} f();//拿到 result 作为结果继续往下执行。所以上面这段代码在1秒后显示 "咚!"。
注意:await 实际上会暂停函数的执行,直到 promise 状态变为 完成,然后以 promise 的结果继续执行。这个行为不会耗费任何 CPU 资源,因为 JavaScript 引擎可以同时处理其他任务:执行其他脚本,处理事件等。
三、综合应用
有了async/await
就去除了到处都是 .then()
代码块,因为await
会等待了。
async function A() { let response = await fetch('c.jpg'); let myBlob = await response.blob(); let objectURL = URL.createObjectURL(myBlob); let image = document.createElement('img'); image.src = objectURL; document.body.appendChild(image);} A().catch(e => { console.log('问题: ' + e.message);});
用更少的.then()
块来封装代码,同时它看起来很像同步代码,所以它非常直观。这样用的很爽!
以上是"JS中如何使用async与await"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
函数
代码
结果
关键
关键字
同时
篇文章
内容
引擎
同步
处理
直观
上下
不怎么
事件
任务
作用
大部分
实际
实际上
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mongo移动数据库地址
查询数据库发生错误
广州银行软件开发待遇好不好
iphone服务器怎么填
哪些数据库用了B树
网络安全责任书如何写
安胜网络安全
碧游网络技术有限公司官网
时空猎人3为什么连接服务器超时
游侠七日杀服务器
松江区服务器设备回收
千万级数据库查询速度
ibm 服务器 系统
redis服务器开机自启
出租网络安全吗
如何进行网络安全等级保护
对象关系数据库
戴尔服务器品牌有哪些
软件开发架构设计软件
内网服务器ssh快速发送文件
福州 大唐网络技术有限公司
自己搭建磁力服务器
速达数据库登录身份为
计算机网络安全考试6
维普数据库的检索功能有哪些
软件开发专业认知范文
网络技术应用期中考试
入门型云服务器
达梦数据库查询模式和查询表
踢死服务器