我有以下代码:
let tasks;
try {
await checkMongoConnection();
const tasks = await Task
.find()
await disconnectMongo();
if (!tasks) { return reject(); }
// Is is possible to use the same naming?
tasks = tasks;
} catch(error) {
console.log(error.message);
}
在JS中可以使用相同的命名吗?例如tasks = tasks
并将变量设置在try
块之外,还是我必须使用新名称,例如tasks = fetchedTasks
?
答案 0 :(得分:2)
否,如果内部范围中有tasks
变量,则不能从内部范围访问外部范围中的tasks
变量。您可以分配给外部作用域变量,但不能被同名内部作用域变量遮盖。
在该示例中,您不需要外部的tasks
,所以我只需要删除它(和tasks = tasks
语句)即可。或者,如果由于某种原因需要它,请删除内部的tasks
声明(只需从其前面的const
删除),以便将try
块中的代码分配给外部的{{1 }}。