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