javascript - 在这个例子中,传递给 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
?
解决方案
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
。