人工智能学习

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

本文主要是介绍【学习打卡】第8天 ES(6-11)全版本语法-异步迭代:for await of,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  • 课程名称: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基础,希望能够坚持下去。

这篇关于【学习打卡】第8天 ES(6-11)全版本语法-异步迭代:for await of的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!