繁体   English   中英

我可以使用带有箭头 function 的生成器函数吗?

[英]Can I use generator-function with arrow function?

我想知道是否可以将箭头 function 与这样的生成器一起使用:

app.use( *() => {
    ...body of function
});

谢谢!

不可以,它不可能比文档中描述的要短:

function* name([param[, param[, ... param]]]) {
   statements
}

参考: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/function*

你可以,但不是很好。 它不短,看起来也不那么漂亮。 看一下这个:

function* iterable(arg): Iterable<never> {
    yield* [];
}

async function* asyncIterable(arg): AsyncIterable<never> {
    yield* [];
}

const arrowIterable = arg => {
    return {
        *[Symbol.iterator]() {
            yield* [];
        },
    };
};

const arrowAsyncIterable = arg => {
    return {
        async *[Symbol.asyncIterator]() {
            yield* [];
        },
    };
};

这是可行的,因为可迭代对象基本上是一个 object,其中Symbol.iteratorSymbol.asyncIterator设置为一个迭代器。 生成器是迭代器!

享受!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM