You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何useEffect内Promise运行正常但IntelliJ提示返回值被忽略

警告触发原因

你在初始版本的useEffect回调中手动创建了一个新Promise实例,但创建完成后没有对该实例做任何后续处理(没有绑定then/catch消费逻辑)。IntelliJ的静态检查规则会将未被消费的Promise标记为风险:若该Promise最终进入rejected状态,没有对应错误处理逻辑的话会抛出未捕获的Promise异常。即便你在内部getIngredients的调用链上加了catch,检查工具仍会识别到外层你主动创建的这层Promise没有被消费,因此给出「Promise returned from Promise is ignored」的警告。

相关说明
  • 代码可正常运行的原因:你已经在Promise内部的getIngredients调用链中完成了setIng状态赋值逻辑,下拉框渲染仅依赖这个state,因此即便外层Promise没有被处理,核心业务逻辑也能正常执行。
  • IntelliJ给出的修改方案仅为了满足静态检查要求,无实际业务价值:它只是通过新增一个then回调消费了外层Promise,让静态检查不再触发警告,本身没有额外的业务作用。
  • 更合理的优化方案:你完全可以删除无意义的外层Promise包装,直接简化useEffect逻辑,既能消除警告,也能减少冗余代码:
useEffect(() => {
  getIngredients()
    .then((response) => setIng(response))
    .catch((error) => setError(error));
}, []);

内容的提问来源于stack exchange,提问作者Zuzu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 17:39:02