为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第8天 ES(6-11)全版本语法-异步迭代:for await of

标签:
JavaScript
  • 课程名称:JavaScript ES(6-11)全版本语法 每个前端都需要的基础课

  • 课程章节: 异步迭代:for await of

  • 主讲老师:谢成

课程内容:

今天学习的内容包括:

异步迭代:for await of

课程收获:

在 ECMAScript 2015(ES6) 中 JavaScript 引入了迭代器接口(iterator)用来遍历数据。迭代器对象知道如何每次访问集合中的一项, 并跟踪该序列中的当前位置。在 JavaScript 中迭代器是一个对象,它提供了一个 next() 方法,用来返回序列中的下一项。这个方法返回包含两个属性:done 和 value。

迭代器对象一旦被创建,就可以反复调用 next()。

const arr = ["es6", "es7", "es8", "es9"];
arr[Symbol.iterator] = function () {
  let nextIndex = 0;
  return {
    next() {
      return nextIndex < arr.length
        ? {
            value: arr[nextIndex++],
            done: false,
          }
        : {
            value: undefined,
            done: true,
          };
    },
  };
};
for (let item of arr) {
  console.log(item);
}

function getPromise(time) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve({
        value: time,
        done: false,
      });
    }, time);
  });
}
const arr = [getPromise(1000), getPromise(2000), getPromise(3000)];
arr[Symbol.asyncIterator] = function () {
  let nextIndex = 0;
  return {
    next() {
      return nextIndex < arr.length
        ? arr[nextIndex++]
        : Promise.resolve({
            value: undefined,
            done: true,
          });
    },
  };
};
async function test() {
  for await (let item of arr) {
    console.log(item);
  }
}
test();

图片描述
图片描述
今天学习课程共用了35分钟,重新了解了一下异步迭代:for await of,这是我不知道第多少次决心补习JavaScript基础,希望能够坚持下去。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消