Javascript 什么';获取迭代器函数最终值的惯用方法是什么?
我有一个非常复杂的函数,它描述了一些迭代过程。它看起来像这样(我有很多与问题无关的代码):Javascript 什么';获取迭代器函数最终值的惯用方法是什么?,javascript,typescript,iterator,generator,yield,Javascript,Typescript,Iterator,Generator,Yield,我有一个非常复杂的函数,它描述了一些迭代过程。它看起来像这样(我有很多与问题无关的代码): 有没有更惯用、更简单的方法来达到同样的效果?你能不能添加一个选项 function* functionName( config: Config, poolSize: number, yieldSteps = true ): Generator<[State, Step], boolean, void> { /* ... */ for (const st
有没有更惯用、更简单的方法来达到同样的效果?你能不能添加一个选项
function* functionName(
config: Config,
poolSize: number,
yieldSteps = true
): Generator<[State, Step], boolean, void> {
/* ... */
for (const step of someOtherProcess()) {
/* ... */
if (yieldSteps) { yield [state, step] }
switch (stateType) {
case StateType.Start:
if (/* ... */) {
return false
} else {
return true
}
case StateType.Invalid:
return false
}
}
return false
}
function*functionName(
config:config,
池大小:数字,
yieldSteps=true
):发电机{
/* ... */
for(someOtherProcess()的常量步骤){
/* ... */
if(yieldSteps){yield[state,step]}
开关(状态类型){
案例状态类型。开始:
如果(/*…*/){
返回错误
}否则{
返回真值
}
案例状态类型。无效:
返回错误
}
}
返回错误
}
谢谢!这就解决了我在这个特殊情况下的问题,但我仍然很好奇,如果生成器函数是第三方API的一部分呢?
const generator = functionName(config, poolSize)
let result
while (!(result = generator.next()).done) {}
return result.value as boolean
function* functionName(
config: Config,
poolSize: number,
yieldSteps = true
): Generator<[State, Step], boolean, void> {
/* ... */
for (const step of someOtherProcess()) {
/* ... */
if (yieldSteps) { yield [state, step] }
switch (stateType) {
case StateType.Start:
if (/* ... */) {
return false
} else {
return true
}
case StateType.Invalid:
return false
}
}
return false
}