Async

ES6新特征 - Async

本节主要介绍了ES6新特征中Async的基本概念、语法规则与注意事项,重点理解Async自动化执行包装器。

2021-01-25侠课岛    初级拔高       

前端/前端/前端系列课程P2 5     0     1660

(六十三)ES6新特征 - Async

1:基本概念

  • 封装了自动化执行并返回一个Promise的Generator函数语法糖

    • 封装了自动化执行脚本
    • 返回Promise
    • Generator函数语法糖
    function resolveAfter2Seconds(value) {
    return new Promise(resolve => {
      setTimeout(() => {
        resolve(value);
      }, 2000);
    });
    };
    
    const generator = function* () {
    const value1 = yield resolveAfter2Seconds(1);
    const value2 = yield resolveAfter2Seconds(2);
    console.log(value1);
    console.log(value2);
    };
    
    function co(generatorFunction) {
    return new Promise(function(resolve, reject) {
      const generator = generatorFunction();
      function step(nextF) {
        let next;
        try {
          next = nextF();
        } catch(e) {
          return reject(e);
        }
        if(next.done) {
          return resolve(next.value);
        }
        Promise.resolve(next.value).then(function(v) {
          step(function() {
            return generator.next(v);
          });
        }, function(e) {
          step(function() {
            return generator.throw(e);
          });
        });
      }
      step(function() {
        return generator.next(undefined);
      });
    });
    }
    
    co(generator);
    
    /*
    (4s后)
    1
    2
    */
    const async = async function () {
    const value1 = await resolveAfter2Seconds(1);
    const value2 = await resolveAfter2Seconds(2);
    console.log(value1);
    console.log(value2);
    };
    async().then(res => {
    console.log(res);
    })
    
    /*
    (4s后)
    1
    2
    */
    
    async function asyncFunc() {};
    
    const asyncFunc = async function () {};
    
    const asyncFunc = async () => {};
    
    const obj = {
    async asyncFunc() {}
    }

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

5

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录


本文索引

本文标签


|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?