gpt4 book ai didi

javascript - 在 JavaScript 中等待...

转载 作者:行者123 更新时间:2023-12-04 10:13:06 25 4
gpt4 key购买 nike

以下代码使用异步迭代器来传递“帧”。

但是这种方法留下了一个未使用的变量( _ )。

如果这是一种有效的方法,为什么 while await (假设特征)在 for await...of 时未添加曾是?
while await将允许省略这个被忽略的变量。

const raf = () => new Promise(resolve => requestAnimationFrame(resolve))
const frames = {
async *[Symbol.asyncIterator]() {
while (true) yield raf()
}
}
function createGameLoop(store) {
async function start() {
for await (let _ of frames)
render(store)
}
return { start }
}

最佳答案

why was while await (a hypothetical feature) not added when for await...of was?



因为它给语言实现增加了不必要的复杂性,而且很少有用。

生成器应该产生值,而不是虚无。不使用变量很容易忽略该值,就像您所做的那样。主要用例是获取值,这就是语法的设计目的。

即使在您的示例中,它们实际上也很有用。你的生成器不提供任何东西,它不提供“帧”,它提供高分辨率的时间戳 requestAnimationFrame 电话 resolve ,并且您应该在您的 render 中使用它们平滑增量动画的功能:
function createGameLoop(store) {
async function start() {
for await (const timestamp of frames)
render(store, timestamp)
}
return { start }
}

关于javascript - 在 JavaScript 中等待...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61230071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com