gpt4 book ai didi

javascript - promise 。 return resolve() 和 resolve() 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 22:03:02 26 4
gpt4 key购买 nike

在某处读过这个例子:

return new Promise( (resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
return resolve(data)
})
})

但我通常这样做:

return new Promise( (resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
resolve(data)
})
})

有区别吗?

最佳答案

return resolve() 将像正常的 return 一样结束函数执行,这取决于您的代码流,如果您不想要或不需要函数中还有要执行的代码,然后使用 return 退出函数

return new Promise( (resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
return resolve(data)
console.log('after return') // won't execute
})
})

只有 resolve 会创建一个成功的promise状态,但如果没有使用 return 就会执行代码执行。

记住 resolve()reject() 创建promise的状态,一旦创建状态就不能改变了,.then.catch 处理程序用于进一步执行,使用 return 完全取决于您的代码流。如果您不想在该 block 中执行更多代码,则 return resolve()

return new Promise( (resolve, reject) => {
fs.readFile(file, (err, data) => {
if (err) reject(err)
resolve(data)
console.log('after return') // will execute
})
})

它与 function 中的普通 return 语句相同,与 Promise 无关

关于javascript - promise 。 return resolve() 和 resolve() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42349338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com