async/await的作用就是使异步操作以同步的方式去执行

异步操作同步化?

可以使用Promise中的then()来实现,那么async/await与它之间有什么区别呢

1.async函数返回的是一个Promise对象

如果一个函数加了async关键词,这个函数又有返回值,在调用这个函数时,如果函数执行成功,内部会调用Promise.solve()方法返回一个Promise对象,如果函数执行出现异常,就会调用Promise.reject()方法返回一个promise 对象

要想获取到async函数的执行结果,就要调用Promisethencatch来给它注册回调函数

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的作用,一般情况下,asyncawait配合使用才能使异步操作同步化,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实现同步相关推荐

  1. 微信小程序封装request请求,primise队列化,async await做同步处理,缓存token信息

    话不多数直接上代码! 在app.js文件中加入,一般新建的项目都有globalData只需要在里面添加你的信息就行了 globalData: {Ip:'',Header:{ //request 请求头 ...

  2. 为什么async/await方法不能有lock或Monitor

    相信有不少朋友知道async/await有lock语法的情况一般都会编译错误,这个时候可以通过Monitor来解决编译错误的问题:虽然这样解决的编译错误但本质问题还是没有解决. 其实并不是async/ ...

  3. 解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!

    解决异步问题--promise.async/await 一.单线程和异步 1.单线程是什么 2.为什么需要异步 3.使用异步的场景 二.promise 1.promise的三种状态 2.三种状态的表现 ...

  4. promise 、async/await 的原理及实现

    前言 事件循环机制 由于 javascript 引擎是采用单线程运行机制,执行耗时过大的操作时会造成页面的阻塞,为了解决页面的阻塞问题,js 将任务分为 同步任务.异步任务,随之而来的是异步带来的执行 ...

  5. vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用

    vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用 异步解决方案:async/await 多个await,同步拿到数据再处理 多个接口处理拿到数 ...

  6. [.NET] 怎样使用 async await 一步步将同步代码转换为异步编程

    怎样使用 async & await 一步步将同步代码转换为异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6079707.html  ...

  7. async await 处理异步变同步(微信小程序内举例)

    1.async起什么作用?   输出的是一个Promise对象 注: 1)async函数返回的是一个Promise对象.Async函数(包含函数语句.函数表达式.Lambda表达式)会返回一个Prom ...

  8. 避免回调地狱的解决方案 async/await:用同步的方式去写异步代码

    文章目录 前言 一.引入异步编程 二.常见处理异步编程的几种方式 1.Generator函数 2.Promise函数 3.async/await 总结 前言 这篇文章主要给大家分享一下,自己关于异步编 ...

  9. axios 进行同步请求(async+await)

    介绍 Axios 是一个基于 promise 的 HTTP 库,它支持 Promise API. 像这样: axios.post('getsomething').then(res => {// ...

  10. promise 和 async await区别

     什么是Async/Await? async/await是写异步代码的新方式,以前的方法有回调函数和Promise. async/await是基于Promise实现的,它不能用于普通的回调函数. as ...

最新文章

  1. 3dmax批量导出fbx_推荐一款超实用的3DMAX插件——模法师
  2. cvCreateMat函数
  3. Entity Framework技巧系列之十一 - Tip 42 - 45
  4. mybatis 批量查询参数语句
  5. 6.7 程序示例--K-Means-机器学习笔记-斯坦福吴恩达教授
  6. 成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘
  7. 舞伴配对问题java_舞伴配对问题
  8. 百度地图Label 样式 setStyle
  9. Cisco Packet Tracer安装教程
  10. 如何设置无线网络中计算机的ip,电脑wifi怎么设置 电脑wifi设置教程详解
  11. 解决word生成目录-页码-字体问题
  12. Yandex-好用的以图搜图网站
  13. 计算机艺术未来发展趋势,数字媒体艺术未来的发展趋势探讨
  14. python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇
  15. Python库——PyPDF2介绍
  16. Python 读取xlsx表格
  17. CMOS器件与TTL器件CMOS电平与TTL电平
  18. 入门|一文读懂区块链“谷歌引擎”Covalent API, 无需编程实现跨链技术只需一秒
  19. 论文参考文献格式标准
  20. c语言long long是什么意思,long是什么意思_long在线翻译_英语_读音_用法_例句_海词词典...

热门文章

  1. Linux中关于链表的遍历
  2. 一个类windows系统的效果图
  3. android各版本对应的SDK level(包括android 10)
  4. 小程序如何上传代码到服务器,云服务器怎么上传小程序代码
  5. python的ogr模块_Python与开源GIS:使用OGR模块打开矢量数据
  6. cv方向有哪些_【星球知识卡片】视频分类与行为识别有哪些核心技术,对其进行长期深入学习...
  7. 基于vc的freetype字体轮廓解析_才一年,长安又换新LOGO,连带字体也升级了,你喜欢吗?_搜狐汽车...
  8. 字体怎么安装到vivo_老人用手机遇到操作麻烦?vivo远程协助及时解决问题
  9. python信用卡客户_Python之信用卡模拟程序
  10. 计算机窗口显示桌面,Windows Server 2012 R2在桌面上显示计算机/网络图标