首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我保证。返回resolve()和resolve()有什么区别?

我保证。返回resolve()和resolve()有什么区别?
EN

Stack Overflow用户
提问于 2017-02-21 00:13:25
回答 1查看 18.9K关注 0票数 47

请在某个地方阅读此示例:

代码语言:javascript
复制
return new Promise( (resolve, reject) => {
  fs.readFile(file, (err, data) => {
    if (err) reject(err)
    return resolve(data)
  })
})

但我通常这样做:

代码语言:javascript
复制
return new Promise( (resolve, reject) => {
  fs.readFile(file, (err, data) => {
    if (err) reject(err)
    resolve(data)
  })
})

有什么不同吗?

EN

回答 1

Stack Overflow用户

发布于 2017-02-21 00:18:05

return resolve()将像一个普通的return一样结束函数的执行,这取决于您的代码流,如果您不想或需要在函数中执行更多的代码,则使用return退出函数

代码语言:javascript
复制
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完全取决于您的代码流。如果您不想在该块中执行更多代码,那么return resolve()

代码语言:javascript
复制
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无关

票数 65
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42349338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档