10 ES6 优化回调地狱、promise化、async+await

ES6 Promise可解决回调地狱、try{}catch{}、同步并发的异步问题,但解决回调地狱问题中依旧有很明显的回调痕迹 -> ES6中generator生成器+promise对象+CO库、ES7中的async/await 它们可以让异步代码看起来与同步代码一样,更加优雅;

- - ->>> 补充:generator+promise便可以解决,其内部涉及到了“递归”思想,说实话还不如之前直接只用promise对象优化更加“清晰”,因此可进一步优化  -> Generator+promise+Co库;//Co库处理递归部分,npm install co ;引入使用即可;此库是由TJ大神写的,express、koa、koa2也是出自他手;

- - ->>> ES7推出了新的异步解决方案:async+await 底层实现有部分是Generator生成器+promise对象+Co库,所以它可以理解为“语法糖”,但其内部不仅仅限于处理回调地狱,其还可以解决try..catch..捕获异步错误,以及解决同步并发的异步问题(有些牵强,可理解为解决一些特殊需求),开发中主要是解决回调地狱; -> 相比于generator处理回调地狱需引入第三方库,更青睐 async、await;// 可使用Babel工具查看语法糖

1、优化回调地狱

10 ES6 优化回调地狱、promise化、async+await_第1张图片
10 ES6 优化回调地狱、promise化、async+await_第2张图片
10 ES6 优化回调地狱、promise化、async+await_第3张图片
10 ES6 优化回调地狱、promise化、async+await_第4张图片
10 ES6 优化回调地狱、promise化、async+await_第5张图片

2、promise化 ->若同时有多个异步操作,往往会出现大量代码冗余,希望封装函数“更好管理”;可手动封装函数,也可直接引入第三方库,例如: bluebird库、P库

10 ES6 优化回调地狱、promise化、async+await_第6张图片
10 ES6 优化回调地狱、promise化、async+await_第7张图片

3、async + await;

10 ES6 优化回调地狱、promise化、async+await_第8张图片
10 ES6 优化回调地狱、promise化、async+await_第9张图片
10 ES6 优化回调地狱、promise化、async+await_第10张图片

你可能感兴趣的:(10 ES6 优化回调地狱、promise化、async+await)