在 es6 中,如果函数中有条件,我们是否需要添加 `return` 文字
in es6 do we need to add `return` literal, if there are conditions within function
就我用过的es6而言;我开始知道在这我们可以省略 return
像
这样的文字
.then((res) => res.body } // equivalent to return res.body
所以我的问题是,如果函数中有多个条件,那么我们是否需要在条件中写入 return 或它会完成它的工作? (意味着功能将在没有 return 的情况下执行)
.then((res) => {
if (some_codition) {
res.send();
} else {
if (other_condition)
res.status(200).json(user);
else
res.status(404).json(user);
}
})
以上是否有效,或者我是否需要添加 return
作为最佳实践?
.then((res) => (somecodition) ?
res.send()
:
res.status(200).json(user)
)
试试看...
是的,您必须手动 return 一个值。如果你不这样做,它会 return undefined
.
始终return在 Promise 中赋值是个好主意,因为允许链接。如果您 return 什么都没有(未定义),您的承诺链将不会从该点向内继续。
在这种特定情况下,它可能对您有用,因为您正在调用 "side-effect" 函数,这是您的网络服务器响应 fn。
区别在于箭头后面有没有大括号
.then(res => res.x) // Works
.then(res => {return res.x;}) // Works
.then(res => {res.x;}) // Your function returns undefined.
就我用过的es6而言;我开始知道在这我们可以省略 return
像
.then((res) => res.body } // equivalent to return res.body
所以我的问题是,如果函数中有多个条件,那么我们是否需要在条件中写入 return 或它会完成它的工作? (意味着功能将在没有 return 的情况下执行)
.then((res) => {
if (some_codition) {
res.send();
} else {
if (other_condition)
res.status(200).json(user);
else
res.status(404).json(user);
}
})
以上是否有效,或者我是否需要添加 return
作为最佳实践?
.then((res) => (somecodition) ?
res.send()
:
res.status(200).json(user)
)
试试看...
是的,您必须手动 return 一个值。如果你不这样做,它会 return undefined
.
始终return在 Promise 中赋值是个好主意,因为允许链接。如果您 return 什么都没有(未定义),您的承诺链将不会从该点向内继续。
在这种特定情况下,它可能对您有用,因为您正在调用 "side-effect" 函数,这是您的网络服务器响应 fn。
区别在于箭头后面有没有大括号
.then(res => res.x) // Works
.then(res => {return res.x;}) // Works
.then(res => {res.x;}) // Your function returns undefined.