最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

诺言。 return resolve()和resolve()有什么区别?

IT培训 admin 4浏览 0评论

诺言。 return 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,这取决于代码的流程,如果你不想或不需要函数中的任何代码来执行,那么使用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会创建一个成功的承诺状态,但如果没有使用return,它将执行代码执行。

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

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

它与return中的正常function声明相同,与承诺无关

诺言。 return 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,这取决于代码的流程,如果你不想或不需要函数中的任何代码来执行,那么使用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会创建一个成功的承诺状态,但如果没有使用return,它将执行代码执行。

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

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

它与return中的正常function声明相同,与承诺无关

发布评论

评论列表 (0)

  1. 暂无评论