下一级 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:
Promise.resolve(1)
.then(x => { console.log(x); }) // 输出 1,隐式返回 undefined
.then(x => console.log('next:', x)); // 输出 'next: undefined'
常见易错场景
这些写法效果完全一样,都会让下一级收到 undefined:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
.then(() => {}).then(() => void 0)-
.then(() => return;)(语法错误,但意图是返回 undefined) .then(() => { return; })
如果你希望下一级接收某个特定值,必须显式 return 它。
和返回 Promise 的区别
如果这一级 return 了一个 Promise,下一级就会等它 settle 后再执行;而返回 undefined 是同步完成的,不引入任何异步延迟——只是把 undefined 当作结果往下传。

















