【发布时间】:2021-10-31 07:49:46
【问题描述】:
This example on MDN 解释Symbol.asyncIterator。
const myAsyncIterable = {
async* [Symbol.asyncIterator]() {
yield "hello";
yield "async";
yield "iteration!";
}
};
(async () => {
for await (const x of myAsyncIterable) {
console.log(x);
// expected output:
// "hello"
// "async"
// "iteration!"
}
})();
我的问题是代码中的async* 是什么意思?
【问题讨论】:
-
async*在您的示例中使用,因为它是一个异步函数(请参阅 What is the meaning of theasynckeyword? 作为对象文字中方法定义的一部分,它不需要function关键字。 -
虽然所有链接的问题都相关,但我不同意这个问题与其中任何一个问题重复。他们都没有解决
async*和Symbol.asyncIterator的具体用例。 -
@HereticMonkey 生成器函数和函数在工作方式上绝对不一样。该术语实际上是不可互换的。而且异步迭代器协议也不仅仅是你可以说“它只是一个函数”的东西。您的评论非常过于简单化了。
标签: javascript symbols