诺言。 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 /无极/决心