我小我比较爱好如下写法:
- const [ a, b ] = await Promise.all([ queryA(), queryB() ]);
- doSomething(a, b);
- function timeout(delay) {
- return new Promise(resolve => {
- setTimeout(resolve, delay);
- });
- }
- timeout(1000).then(() => {
- console.log(1);
- return timeout(1000);
- }).then(() => {
- console.log(2);
- return timeout(1000);
- }).then(() => {
- console.log(3);
- return timeout(1000);
- }).then(() => {
- console.log(4);
- return timeout(1000);
- }).then(() => {
- console.log(5);
- return timeout(1000);
- }).then(() => {
- // ..
- });
将 await 和 Promise 结合应用,效不雅更佳!
停止语
如今 async 函数已经被各大年夜主流浏览器实现(除了 IE)。如不雅要兼容旧版浏览器,可以应用 babel 将其编译为 Generator。如不雅还要兼容只支撑 ES5 的浏览器,还可以持续把 Generator 编译为 ES5。编译后的代码量比较大年夜,当心代码膨胀。
如不雅是用 node 写 Server,那就不消纠结了直接用就是了。koa 是用 async 是你的好副手。
【编辑推荐】
- 不要再在JavaScript中写 CSS了
- JavaScript异步开辟全攻略 之 异步的来源
- 若何应用JavaScript构建机械进修模型
- JavaScript代码风格要素
- 为什么在JavaScript中应用getter和setter是一个坏主意
推荐阅读
今朝手机等移动设备网站开辟已经有比较好的解决筹划,一种是响应式网站,像笔者博客一样,PC网站就是移动网站,一种是把移动网站和PC网站分开,类似淘宝那样。大年夜网站搜刮引擎优化的角>>>详细阅读
本文标题:JavaScript与异步编程
地址:http://www.17bianji.com/lsqh/36197.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示