在 JavaScript Generator 函数中,若只需执行 yield 副作用(如发起 API 调用)而无需其返回值,直接赋值给变量会触发 ESLint 的 no-unused-vars 警告;此时可省略变量声明,仅用 yield expression 语句即可安全忽略返回值,无需 void 或占位符。
在 javascript generator 函数中,若只需执行 `yield` 副作用(如发起 api 调用)而无需其返回值,直接赋值给变量会触发 eslint 的 `no-unused-vars` 警告;此时可省略变量声明,仅用 `yield expression` 语句即可安全忽略返回值,无需 `void` 或占位符。
Generator 函数中的 yield 表达式本质是暂停执行并交出控制权,其返回值(即 iterator.next(value) 中传入的 value)属于下一次恢复时的输入,而非当前 yield 的输出。而 yield expression 本身的求值结果(即 expression 的返回值)才是当前 next() 调用所获取的 .value —— 这个值完全可以被忽略,就像忽略普通函数调用的返回值一样。
✅ 正确写法(推荐):直接执行,不声明变量
function* cancelCredit(action) { yield call(/* Nice api call 1 */); // ✅ 无变量、无警告、语义清晰 const res2 = yield call(/* Nice api call 2 */); // 处理 res2... yield put({ type: 'CREDIT_CANCELLED' });}
⚠️ 注意事项:
? 总结:Generator 中 yield expression 是一条完整的语句,无需绑定变量。忽略返回值是合法且惯用的写法,既符合语言规范,也保持代码简洁专业。