诺言。 resolve()和resolve()之间的区别是什么?

在某处阅读这个例子:

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结束函数执行,这只是取决于你的代码的stream程,如果你不想或需要更多的代码在你的函数执行,然后使用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会创build一个成功的承诺状态,但是如果没有使用return时会执行代码执行。

记住resolve()reject()创buildpromise的状态,一旦创build状态就不能改变.then .catch.catch处理程序用于进一步执行,使用return完全取决于你的代码stream。 如果您不想在该块中执行更多的代码,则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没有任何关系

它在这里没有什么区别,但是如果你想在解决之后做一些事情,你可以参考MDN页面底部的例子: https : //developer.mozilla.org/en/docs/Web / JavaScript的/参考/ Global_Objects /无极/决心