• ECMA Script 6_async 函数


    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!');
      }); 

     

    --------小尾巴 ________一个人欣赏-最后一朵颜色的消逝-忠诚于我的是·一颗叫做野的心.决不受人奴役.怒火中生的那一刻·终将结束...
  • 相关阅读:
    Python从入门到精通系列文章总目录
    使用465端口加密发邮件
    kubernetes学习14—Dashboard搭建和认证
    kubernetes学习01—kubernetes介绍
    CSS基础
    SVN 命令行的使用
    Python判断字符集
    Flask框架(2)-JinJa2模板
    搭建ntp服务器
    Ansible的Playbook的编写
  • 原文地址:https://www.cnblogs.com/tianxiaxuange/p/10123937.html
Copyright © 2020-2023  润新知