async 函数

  •     const promise = new Promise((resolve, reject)=>{
    setTimeout(function(){
    console.log("Done1"+"First");
    resolve("Done1"+"First");
    }, 1000);
    });
    async function fn(){
    console.log("开始执行!"); // 只能在 async 函数里使用
    await 123; // 只能在 async 函数里使用 // 只能在 async 函数里使用
    await promise; // 异步等待,须包装成 Promise 对象 console.log("执行完了!");
    }; fn();

真正意义上去解决异步回调的问题,

同步流程 表达 异步操作

本质上就是: Generator 的语法糖

  • await promise;

等待异步操作

只会 等待 初始化状态Promise 实例(如果是失败状态,会报错)

  • const promise = new Promise((resolve, reject)=>{
    setTimeout(function(){
    resolve("1");
    }, 1000);
    }); async function fn(){
    console.log('开始执行'); const result1 = await promise;
    console.log(result1); const result2 = await new Promise((resolve, reject)=>{
    setTimeout(function(){
    resolve('2'); // 如果这里 reject() 则下面的代码都不会执行了
    }, 2000);
    }); const result3 = await new Promise((resolve, reject)=>{
    setTimeout(function(){
    resolve('3');
    }, 3000);
    });
    }; var ret = fn();
    console.log(ret); // 默认返回值 就是Promise 实例 ret.then(result=>{
    console.log('全部都成功了');
    console.log(result); // 如果没有返回值,默认 unfefined
    }).catch(result=>{
    // 必须是 await 修饰的 promise 实例,且必须 失败状态
    console.log('Something is wrong!');
    });

最新文章

  1. VS2015下编译64位GDAL总结
  2. iOS开发 滤镜的使用
  3. blogilo在chinaunix发布博客的设置
  4. 2016.9.1 JavaScript入门之五
  5. ecshop商品详细描述调用商品相册代码
  6. java面向对象编程——第八章 类的高级概念
  7. 13、NFC技术:读写非NDEF格式的数据
  8. ScheduledExecutorService的用法——定时执行两个任务
  9. uva340 数字匹配检索问题
  10. 获取自身ip
  11. Java_xml_Dom解析方式
  12. java实现 阿拉伯数字转换为汉字数字 算法
  13. 纠错《COM技术内幕》之ProgID
  14. matlab 利用while循环计算平均值和方差
  15. pyparsing:定制自己的解析器
  16. MySQL数据库分区的概念与2大好处(1)
  17. 新手入门 git
  18. android 自定义Viewpager实现无限循环
  19. 高淇java300集JAVA面向对象的进阶作业
  20. HTML阻止冒泡事件的发生

热门文章

  1. LATEX简易教程
  2. 关于JS中的常用表单验证+正则表达式
  3. .net 委托多线程 实时更新界面
  4. Linux之搭建远程数据库[Ubuntu:全过程]
  5. 401 experience
  6. 深度学习在graph上的使用
  7. npm——安装教程、安装vue脚手架
  8. Alpha 冲刺 (8/10)
  9. ul li 实现层级列表显示
  10. pandas 中的模糊匹配