在某处读过这个例子:
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/