Javascript (Node.js) 将json解构为现有变量
Javascript (Node.js) destructure json into existing variables
我想知道是否可以在方法中声明一次变量,然后多次重用它们以捕获解构的 return 值。
例如:
function verifyStatusAsSignedIn(url, cred){
// code truncated
return { 'error' : false, 'status': true }
}
我可以同时进行声明和解构JSON。
const { error , status } = verifyStatusAsSignedIn(url, cred);
但是我调用了更多方法,它们也会 return JSON 带有错误和状态,就像方法 'verifyStatusAsSignedIn()' 一样。
我最想这样做:
let error, status;
{ error, status } = verifyStatusAsSignedIn(url, cred);
// handle or respond to error and status.
{ error, status } = nextStep(val1, val2);
// handle or respond to error and status
但这给了我一个 lint 警告'预期的声明或声明。
是否可以重新使用现有变量来解构 json 对象?
你只需要像这样用括号包围它就可以分配给现有变量:
let error, status;
({ error, status } = verifyStatusAsSignedIn(url, cred));
这是因为没有括号,Javascript 认为 {
是新块作用域的开始。这显然是解构赋值语法 运行 与现有语法规则发生冲突的地方,因此需要与 parens 进行变通才能以这种方式使用它。
这个情况可以看MDN描述here。
我想知道是否可以在方法中声明一次变量,然后多次重用它们以捕获解构的 return 值。
例如:
function verifyStatusAsSignedIn(url, cred){
// code truncated
return { 'error' : false, 'status': true }
}
我可以同时进行声明和解构JSON。
const { error , status } = verifyStatusAsSignedIn(url, cred);
但是我调用了更多方法,它们也会 return JSON 带有错误和状态,就像方法 'verifyStatusAsSignedIn()' 一样。
我最想这样做:
let error, status;
{ error, status } = verifyStatusAsSignedIn(url, cred);
// handle or respond to error and status.
{ error, status } = nextStep(val1, val2);
// handle or respond to error and status
但这给了我一个 lint 警告'预期的声明或声明。
是否可以重新使用现有变量来解构 json 对象?
你只需要像这样用括号包围它就可以分配给现有变量:
let error, status;
({ error, status } = verifyStatusAsSignedIn(url, cred));
这是因为没有括号,Javascript 认为 {
是新块作用域的开始。这显然是解构赋值语法 运行 与现有语法规则发生冲突的地方,因此需要与 parens 进行变通才能以这种方式使用它。
这个情况可以看MDN描述here。