async/await:是一个同步思维解决异步问题的方案
1.会自动将常规函数转换成Promise,返回值也是一个Promise对象
2.只有asyc函数内部的异步操作执行完,才会执行then方法指定的回调函数
3.异步函数内部可以使用await
4.await放置在Promise调用之前,await强制后面点代码等待,直到Promise对象resolve,得到resolve的值作为await表达式的运算结果
5.await只能在async函数内部使用,用在普通函数里就会报错
【async/await与promise】和Promise相比较
相同点:为了解决异步流程问题,promise是约定,W而async更优雅
区别:
1.Promise是ES6,而async是ES7
2.Promise原来又规范的意义,Promise a,b,,c,d等规范,最终确定的是Promise a+规范
3.Promise链式操作,自己catch异常。async则要在函数内catch
4.promise有很多并行器,比如promise.all\promise.race等。这些是async无法搞定的
5.promise是显示的异步,而async/await让你的代码看起来是同步的,你依然要注意异步
6.Promise即使不支持es6,你依然可以用promise的库或polyfill,而async就很难做
推荐阅读
- 电商平台基于销售属性生成SKU的设计
- js异步编程
- Javascript 的优缺点,以及重点
- 还在写SQL做SAP二开(通过RFC调用NetWeaver,让HANA数据库操作更可靠)
- fetch简单封装request.js
- JavaScript的事件循环机制浅析
- js 数组去重的方式
- JavaScript 数组方法filter和reduce
- 关于promise学习