下一级 then 会接收到 undefined,因为 javascript 函数默认返回 undefined,promise 的 then 回调也不例外;显式或隐式不返回值均导致下一级立即执行成功回调并传入 undefined。

下一级 then 会接收到 undefined。
为什么是 undefined
JavaScript 函数默认返回值就是 undefined,无论你写没写 return。Promise 的 then 回调函数也不例外:
- 显式写
return;→ 返回undefined - 只写
{ console.log('done'); }(无 return)→ 返回undefined - 写
return 42;或return { ok: true };→ 返回对应值
它会怎样影响下一级 then
因为返回的是普通值(undefined),所以下一个 then 会立即执行成功回调,且参数就是 undefined:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
Promise.resolve(1)
.then(x => { console.log(x); }) // 输出 1,隐式返回 undefined
.then(x => console.log('next:', x)); // 输出 'next: undefined'
常见易错场景
这些写法效果完全一样,都会让下一级收到 undefined:
.then(() => {}).then(() => void 0)-
.then(() => return;)(语法错误,但意图是返回 undefined) .then(() => { return; })
如果你希望下一级接收某个特定值,必须显式 return 它。
和返回 Promise 的区别
如果这一级 return 了一个 Promise,下一级就会等它 settle 后再执行;而返回 undefined 是同步完成的,不引入任何异步延迟——只是把 undefined 当作结果往下传。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










