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

示例中Promise的then回调函数参数cake的具体含义是什么?

Promise回调参数逻辑解答

示例代码如下:

const jeffBuysCake3 = cakeType => {
  return new Promise((resolve, reject) => {
    setTimeout(()=> {
      if (cakeType === 'black forest') {
        resolve('black forest cake!') 
      } else {
        reject('No cake 😢') 
      }
    }, 1000)
  })
}

console.log(jeffBuysCake3('black forest').then(cake => console.log(cake)).catch(nocake => console.log(nocake)))

具体逻辑拆解:

  • 调用jeffBuysCake3('black forest')会返回一个Promise实例,这个实例的状态默认是 pending(等待中)
  • 1秒后定时器触发,判断符合条件,执行resolve('black forest cake!'),此时Promise的状态变为成功,同时绑定成功值为你传入resolve的字符串'black forest cake!'
  • .then()的作用是注册「Promise成功时要执行的回调函数」,你写的cake => console.log(cake)就是这个回调函数,其中cake是你自定义的形参名,换成res、result等任意名称效果都相同
  • 当Promise变为成功状态时,JS会自动把Promise绑定的成功值(也就是resolve的入参)传入你注册的回调函数,赋值给形参cake,所以console.log(cake)才会输出black forest cake!
  • 结论:cake不等于resolve方法本身,cake的值就是你调用resolve时传入的内容。同理catch里的nocake形参,接收的就是reject调用时传入的错误内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:15:02