【发布时间】:2018-02-06 05:48:52
【问题描述】:
我有发电机
function* pendingPage() {
let value = 1;
while (true)
yield getPage(value++);
}
我有getPage()函数
async function getPage(value) {
const page = await service.getValidations(value);
(page.data.customers.length === 0) ? service.isCustomersFinished = false : console.log(page.data.customers);
}
我有 while 无限循环,语法如下:
let generator = pendingPage()
while(true){
generator.next();
}
我想在其中使用generator.next() 函数。但是生成器不工作。
我尝试了for 循环,它工作正常。
那么,它有什么问题以及如何在无限循环中使用generator.next()?
【问题讨论】:
-
什么是
generator? -
您希望如何摆脱无限循环?当然,无论调用什么方法,无限循环都不起作用。
-
生成器函数的
yield不会自动等待您的异步函数解析。不要将懒惰与异步混为一谈。 -
好的,现在回到 Bergi 的问题:你到底想用这个来完成什么?按顺序获取每个页面?
-
@Remzes 为什么你认为你需要一个生成器呢?一个异步无限循环就足够了。
标签: javascript async-await generator ecmascript-2017