簡體   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