作家
登录

JavaScript与异步编程

作者: 来源: 2017-07-13 15:03:48 阅读 我要评论

  • const a = await promiseA(); // 这时 queryB 已经履行停止。持续等待 queryA 履行停止 
  • doSomething(a, b); 
  • 我小我比较爱好如下写法:

    1. const [ a, b ] = await Promise.all([ queryA(), queryB() ]); 
    2. doSomething(a, b); 
    1. function timeout(delay) { 
    2.   return new Promise(resolve => { 
    3.     setTimeout(resolve, delay); 
    4.   }); 
    5.  
    6. timeout(1000).then(() => { 
    7.   console.log(1); 
    8.   return timeout(1000); 
    9. }).then(() => { 
    10.   console.log(2); 
    11.   return timeout(1000); 
    12. }).then(() => { 
    13.   console.log(3); 
    14.   return timeout(1000); 
    15. }).then(() => { 
    16.   console.log(4); 
    17.   return timeout(1000); 
    18. }).then(() => { 
    19.   console.log(5); 
    20.   return timeout(1000); 
    21. }).then(() => { 
    22.   // .. 
    23. }); 

    将 await 和 Promise 结合应用,效不雅更佳!

    停止语

    如今 async 函数已经被各大年夜主流浏览器实现(除了 IE)。如不雅要兼容旧版浏览器,可以应用 babel 将其编译为 Generator。如不雅还要兼容只支撑 ES5 的浏览器,还可以持续把 Generator 编译为 ES5。编译后的代码量比较大年夜,当心代码膨胀。

    如不雅是用 node 写 Server,那就不消纠结了直接用就是了。koa 是用 async 是你的好副手。

    【编辑推荐】

    1. 不要再在JavaScript中写 CSS了
    2. JavaScript异步开辟全攻略 之 异步的来源
    3. 若何应用JavaScript构建机械进修模型
    4. JavaScript代码风格要素
    5. 为什么在JavaScript中应用getter和setter是一个坏主意
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      Web开发中的响应式图片处理

    今朝手机等移动设备网站开辟已经有比较好的解决筹划,一种是响应式网站,像笔者博客一样,PC网站就是移动网站,一种是把移动网站和PC网站分开,类似淘宝那样。大年夜网站搜刮引擎优化的角>>>详细阅读


    本文标题:JavaScript与异步编程

    地址:http://www.17bianji.com/lsqh/36197.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)