首页 > 解决方案 > 在这个例子中,传递给 promise 的回调函数的参数是什么?

问题描述

我在网上跟踪一个例子:

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

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

这返回black forest cake!

我不明白的部分是cake => console.log(cake)

cake这个例子是什么?

我知道传递“黑森林”代表参数cakeType

但是,我不清楚“蛋糕”是什么。

cake=吗resolve

标签: javascriptpromise

解决方案


Cake表示成功调用的promise的结果,在这个例子中他们可能想要表示蛋糕结果,而蛋糕结果是“黑森林”。

你可以这样写

jeffBuysCake3('black forest')
.then(result => console.log(result))
.catch(error => console.log(error))

结果将是“黑森林蛋糕”,如果promise函数是这样的

const jeffBuysCake3 = cakeType => {
  return new Promise((resolve, reject) => {
    setTimeout(()=> {
      if (cakeType
 === 'black forest') {
        resolve('Strawberry cake !') //Callback function
      } else {
        reject('No cake for you today') //Callback function
      }
    }, 1000)
  })
}

结果将是“草莓蛋糕!”,而如果出现错误,它会打印出“今天没有蛋糕适合你”。

如果你不知道 Promise 是如何工作的,当我们提供.then它意味着如果 Promise 解决(成功)然后给我返回结果。如果无法解决,则捕获我们使用的错误.catch


推荐阅读