async/await实现同步
async/await的作用就是使异步操作以同步的方式去执行
异步操作同步化?
可以使用Promise中的then()来实现,那么async/await与它之间有什么区别呢
1.async函数返回的是一个Promise对象
如果一个函数加了async
关键词,这个函数又有返回值,在调用这个函数时,如果函数执行成功,内部会调用Promise.solve()
方法返回一个Promise
对象,如果函数执行出现异常,就会调用Promise.reject()
方法返回一个promise
对象
要想获取到async
函数的执行结果,就要调用Promise
的then
或catch
来给它注册回调函数
async function fn(){return '111'
}
console.log(fn());//Promise { '111' }
既然是Promise
对象,因此可以使用then()
获取返回的结果
async function fn(){return '111'
}
fn().then(data=>{console.log(data)//111
})
复制代码
2.await
上面介绍了async
的作用,一般情况下,async
与await
配合使用才能使异步操作同步化,await
就是等待的意思,等待某一个函数执行完之后,后面的代码才能开始执行
function fn1(){return new Promise(resolve=>{setTimeout(function(){msg='wait me 3000';resolve(msg)},3000);});
}
async function asyncCall(){var result=await fn1();console.log(result);
}
asyncCall();
复制代码
如果我们没有等待fn1
执行完之后再打印result
,那么有可能得到是undefined
debug 调试如下:
async/await实现同步相关推荐
- 微信小程序封装request请求,primise队列化,async await做同步处理,缓存token信息
话不多数直接上代码! 在app.js文件中加入,一般新建的项目都有globalData只需要在里面添加你的信息就行了 globalData: {Ip:'',Header:{ //request 请求头 ...
- 为什么async/await方法不能有lock或Monitor
相信有不少朋友知道async/await有lock语法的情况一般都会编译错误,这个时候可以通过Monitor来解决编译错误的问题:虽然这样解决的编译错误但本质问题还是没有解决. 其实并不是async/ ...
- 解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
解决异步问题--promise.async/await 一.单线程和异步 1.单线程是什么 2.为什么需要异步 3.使用异步的场景 二.promise 1.promise的三种状态 2.三种状态的表现 ...
- promise 、async/await 的原理及实现
前言 事件循环机制 由于 javascript 引擎是采用单线程运行机制,执行耗时过大的操作时会造成页面的阻塞,为了解决页面的阻塞问题,js 将任务分为 同步任务.异步任务,随之而来的是异步带来的执行 ...
- vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用
vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用 异步解决方案:async/await 多个await,同步拿到数据再处理 多个接口处理拿到数 ...
- [.NET] 怎样使用 async await 一步步将同步代码转换为异步编程
怎样使用 async & await 一步步将同步代码转换为异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6079707.html ...
- async await 处理异步变同步(微信小程序内举例)
1.async起什么作用? 输出的是一个Promise对象 注: 1)async函数返回的是一个Promise对象.Async函数(包含函数语句.函数表达式.Lambda表达式)会返回一个Prom ...
- 避免回调地狱的解决方案 async/await:用同步的方式去写异步代码
文章目录 前言 一.引入异步编程 二.常见处理异步编程的几种方式 1.Generator函数 2.Promise函数 3.async/await 总结 前言 这篇文章主要给大家分享一下,自己关于异步编 ...
- axios 进行同步请求(async+await)
介绍 Axios 是一个基于 promise 的 HTTP 库,它支持 Promise API. 像这样: axios.post('getsomething').then(res => {// ...
- promise 和 async await区别
什么是Async/Await? async/await是写异步代码的新方式,以前的方法有回调函数和Promise. async/await是基于Promise实现的,它不能用于普通的回调函数. as ...
最新文章
- 3dmax批量导出fbx_推荐一款超实用的3DMAX插件——模法师
- cvCreateMat函数
- Entity Framework技巧系列之十一 - Tip 42 - 45
- mybatis 批量查询参数语句
- 6.7 程序示例--K-Means-机器学习笔记-斯坦福吴恩达教授
- 成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘
- 舞伴配对问题java_舞伴配对问题
- 百度地图Label 样式 setStyle
- Cisco Packet Tracer安装教程
- 如何设置无线网络中计算机的ip,电脑wifi怎么设置 电脑wifi设置教程详解
- 解决word生成目录-页码-字体问题
- Yandex-好用的以图搜图网站
- 计算机艺术未来发展趋势,数字媒体艺术未来的发展趋势探讨
- python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇
- Python库——PyPDF2介绍
- Python 读取xlsx表格
- CMOS器件与TTL器件CMOS电平与TTL电平
- 入门|一文读懂区块链“谷歌引擎”Covalent API, 无需编程实现跨链技术只需一秒
- 论文参考文献格式标准
- c语言long long是什么意思,long是什么意思_long在线翻译_英语_读音_用法_例句_海词词典...
热门文章
- Linux中关于链表的遍历
- 一个类windows系统的效果图
- android各版本对应的SDK level(包括android 10)
- 小程序如何上传代码到服务器,云服务器怎么上传小程序代码
- python的ogr模块_Python与开源GIS:使用OGR模块打开矢量数据
- cv方向有哪些_【星球知识卡片】视频分类与行为识别有哪些核心技术,对其进行长期深入学习...
- 基于vc的freetype字体轮廓解析_才一年,长安又换新LOGO,连带字体也升级了,你喜欢吗?_搜狐汽车...
- 字体怎么安装到vivo_老人用手机遇到操作麻烦?vivo远程协助及时解决问题
- python信用卡客户_Python之信用卡模拟程序
- 计算机窗口显示桌面,Windows Server 2012 R2在桌面上显示计算机/网络图标